17周刷题(6~10)

发布时间:2024年01月05日

编写int? fun(char? s[])函数,将八进制参数串s转换为十进制整数返回,若传入"77777"返回32767。

#include<string.h>
int  fun(char  s[]) {
	int i = strlen(s)-1, h = 0, q = 1;
	while (i>=0) {
		h += (s[i] - '0') * q;
		q *= 8;
		i--;
	}
	return h;
}

?初始化单列表附加头结点的两种方式:

编写void? init(struct? xs? **hd)函数,初始化单链表附加的头结点。
struct? xs{
? ? ? ? int? cj;
? ? ? ? struct? xs? *next;
};
void? main()
{
? ? ? ? struct? xs? *head=NULL;
? ? ? ? init(&head);
? ? ? ? create(head);
}

struct  xs* init() {
    struct xs* p = (struct xs*)malloc(sizeof(struct xs));
    p->next = NULL;
    return p;
}

编写struct? xs? *init()函数,初始化单链表附加的头结点。

struct? xs{
? ? ? ? int? cj;
? ? ? ? struct? xs? *next;
};
void? main()
{
? ? ? ? struct? xs? *head=init();
? ? ? ? create(head);
}

struct  xs* init() {
    struct xs* p = (struct xs*)malloc(sizeof(struct xs));
    p->next = NULL;
    return p;
}

编写void? create(struct? xs? *hd,int? a[],int? n)函数,根据数组a采用尾插法创建带附加头结点的单链表。
struct? xs{
? ? ? ? int? cj;
? ? ? ? struct? xs? *next;
};
void? main()
{
? ? ? ? int? a[10]={1,2,3,4,5,10,6,7,8,9};
? ? ? ? struct? xs? *head=(struct? xs? *)malloc(sizeof(struct? xs));
? ? ? ? head->next=NULL;
? ? ? ? create(head,a,10);
}

void  create(struct  xs* hd, int  a[], int  n) {
	struct xs* s = hd;
	int i = 0;
	for (i = 0; i < n; i++) {
		s->next = (struct xs*)malloc(sizeof(struct xs) * n);
		s->next->cj = a[i];
		s = s->next;
	}
	s = s->next=NULL;
}

编写int? fun(struct? xs? *hd)函数,返回带头结点单链表所有数据结点的和。
struct? xs{
? ? ? ? int? cj;
? ? ? ? struct? xs? *next;
};
void? main()
{
? ? ? ? ......
? ? ? ? printf("%d\n",fun(head));
? ? ? ? ......
}

int  fun(struct  xs* hd) {
    int s = 0;
    struct  xs* p = hd->next;
    while (p != NULL) {
        s += p->cj;
        p = p->next;
    }
    //p->next = NULL;
    return s;
}

带头列表:

文章来源:https://blog.csdn.net/2301_77479435/article/details/135411791
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。