#include <stdio.h>#include <stdlib.h>#include <time.h>#define NODE struct node#define HEAD struct headNODE{ int data; NODE *next;};HEAD{ int count; NODE *first; NODE *last; NODE *sum; NODE *max; NODE *min; NODE *avg;};void init(HEAD *head){ head->count = 0; head->first = NULL; head->last = NULL; head->sum = NULL;}void addNode(HEAD *head, int data){ HEAD *s; NODE *b; int min, n; int avg; s = (HEAD *) malloc (sizeof(HEAD)); b->data = n; if (data < min) min = data; b->next = s->first; s->first = b; s->sum += b->data; s->count ++; s->avg = s->sum / s->count; }void appendNode(HEAD *head, int data){ HEAD *q; NODE *b; int max, n; int avg; q = (HEAD *) malloc (sizeof(HEAD)); b->data = n; b->next = NULL; if (data > max) max = data; if (emptyList(head)) head->first = b; else q->last->next = b; q->last = b; q->count ++; q->sum += b->data; q->avg = q->sum / q->count;}int emptyList(HEAD *head){ if (head->count==0) return 1; else return 0;}int listCount(HEAD *head){ return (head->count);}void printList(HEAD *head){ int i; NODE *prnNode; prnNode = head->first; for (i=1; i<=head->count; i++) { printf("%d\n", prnNode->data); prnNode = prnNode->next; }}void prnList(HEAD *head){ NODE *prnNode; prnNode = head->first; while (prnNode != NULL) { printf("%d\n", prnNode->data); prnNode = prnNode->next; }}void main(){ HEAD *q, *s; int i, n; q = (HEAD *) malloc (sizeof(HEAD)); s = (HEAD *) malloc (sizeof(HEAD)); init(q); init(s); srand(time(NULL)); for (i=1; i<20; i++) { n = rand() % 201 + 100; if(n % 2 == 0) appendNode(q, n); else addNode(s, n); } printf("\n Queue: \n"); prnList(q); printf("\n Stack: \n"); prnList(s); printf("\n\n\t count \t max \t min \t avg \n"); printf("Queue:\t %d \t %d \t \t %.2f \n", q->count, q->max, q->avg); printf("Stack:\t %d \t %d \t \t %.2f \n", s->count, s->min, s->avg); printf("\n\n");}求帮忙看看怎么改错啊!谢谢你啦!
1 回答
asd8532
TA贡献143条经验 获得超187个赞
s->avg = s->sum / s->count; sum和avg是node类型不能使用/,应该是s->avg->data=s->sum->data/s->count; q->avg = q->sum / q->count;也是 链表不是这样建立的,imooc有视频
- 1 回答
- 0 关注
- 2416 浏览
添加回答
举报
0/150
提交
取消