标题:[原创]几个错误不知怎么改
只看楼主
txijin
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2004-11-5
 问题点数:0 回复次数:4 
[原创]几个错误不知怎么改

#include<stdio.h> #include<malloc.h> #define LEN sizeof(struct student) #define M 3 #define k 5 struct student {long num; char name[30]; float score[4]; struct student *next; };

int n; //建立学生信息的链表 struct student *creat(void) {struct student *head; struct student *p1,*p2; int i; n=0; p1=p2=(struct student *)malloc(LEN); printf("请输入学生数据(输入'0'结束)\n"); printf("学号:");scanf("%ld",&p1->num);if(p1->num == 0) goto end; printf("姓名:");scanf("%s",&p1->name); for(i=1;i<4;i++) {printf("成绩[%d]=",i);scanf("%f",&p1->score[i]);} head=NULL; while(p1->num!=0) {n=n+1; if(n==1)head=p1; else p2->next=p1; p2=p1; p1=(struct student *)malloc(LEN); printf("学号:");scanf("%ld",&p1->num); printf("姓名:");scanf("%s",&p1->name); for(i=1;i<4;i++) {printf("成绩[%d]=",i);scanf("%f",&p1->score[i]);} } p2->next=NULL; end:return(head); } //输出所有学生的信息 int print(struct student *head) {struct student *p; int i; printf("\n现在有 %d 个学生的数据,如下:\n",n); p=head; if(head!=NULL) do {printf(" 学号 %ld 姓名 %s\n",p->num,p->name); for(i=1;i<4;i++) printf("成绩[%d]=%5.2f\n",i,p->score[i]); p=p->next; }while(p!=NULL); return (n); }

//求所有学生n门课和的总平均成绩 float average(int M,struct student *head) {struct student *p; float aver[M]; float sum,aver_all=0; int i; p=head; while(M != 0) { for(i=1;i<=M;i++) { for(j=1;j<=k;j++) {aver[i]=p->score[i];p=p->next;} aver[i]=aver[i]/k;}m--;}; for(i=1;i<M;i++) aver_all+=(aver[i]+aver[i+1]); aver_all=aver_all/M; for(i=1;i<=M;i++) return(aver[i]); return(aver_all); }

main() { struct student *head; head=creat(); print(head); printf("所有学生%d门课的平均成绩为:%5.2f\n",M,average(head,M)); }

搜索更多相关主题的帖子: include 信息 姓名 
2004-11-06 13:03
txijin
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2004-11-5
得分:0 

不好意思忘了把错误写上了,现在附上

:\C_Language_2\Text2.c(58) : error C2143: syntax error : missing ')' before 'constant' F:\C_Language_2\Text2.c(58) : error C2143: syntax error : missing '{' before 'constant' F:\C_Language_2\Text2.c(58) : error C2059: syntax error : '<Unknown>' F:\C_Language_2\Text2.c(58) : error C2059: syntax error : ')' F:\C_Language_2\Text2.c(125) : warning C4013: 'average' undefined; assuming extern returning int Error executing cl.exe.

抱歉~1


------------------------------- ☆ 人人为我~!☆ ☆ 我为人人~!☆ ------------------------------
2004-11-06 13:07
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 

有没有其它错误我没调试,但一眼看上去就发现一个不该犯的错误:

for(i=1;i<=M;i++) return(aver[i]); return(aver_all); }

注意:一个函数中可能有多个return,但只能执行一次return,


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-11-07 00:01
txijin
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2004-11-5
得分:0 

那么改成这样行不

return(aver[1],aver[2],aver[3],aver_all);


------------------------------- ☆ 人人为我~!☆ ☆ 我为人人~!☆ ------------------------------
2004-11-07 21:55
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
得分:0 

这是什么意思?

return(aver[1],aver[2],aver[3],aver_all);

这好象等于 return aver_all;


2004-11-08 01:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-7209-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049020 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved