当前位置: 代码迷 >> C语言 >> [求助]这个程序哪里错了?
  详细解决方案

[求助]这个程序哪里错了?

热度:158   发布时间:2006-06-22 11:01:24.0
[求助]这个程序哪里错了?
#include<stdio.h>
struct user{
char name[10][9];//姓名
int no[10][9];//学号
int c[10][40];//成绩
};
main(){
struct user zg;
int i,n=1;
int zeg=0,zmt=0,zde=0;
for(i=0;i<10;i++){//每次输入一个学生的姓名学号及三科成绩并计算总分
printf("输入第%d个学生的资料:\n",n);
printf("姓名:");
scanf("%s",zg.name[i-0]);
printf("学号:");
scanf("%d",zg.no[i-0]);
printf("英语成绩:");
scanf("%d",zg.c[i-0][0]);
printf("数学成绩:");
scanf("%d",zg.c[i-0][1]);
printf("设计成绩:");
scanf("%d",zg.c[i-0][2]);
zg.c[i-0][3]=zg.c[i-0][0]+zg.c[i-0][1]+zg.c[i-0][2];
printf("第%d个学生的总成绩是:%d\n",n,zg.c[i-0][3]);
zeg=zeg+zg.c[i-0][0];
zmt=zmt+zg.c[i-0][1];
zde=zde+zg.c[i-0][2];
n++;
}
printf("english sum is:%d\n",zeg);
printf("math sum is:%d\n",zmt);
printf("design sum is:%d\n",zde);
printf("检索学生姓名学号:");
int jxh[10][10];
char jxm[10][9];
scanf("%s %d",&jxm[0],&jxh[0]);
if(jxm[0]==zg.name[i-0]||jxh[0]==zg.no[i-0])
for(i=0;i<10;i++){
printf("%s %d %d %d %d",zg.name[i-0],zg.no[i-0],zg.c[i-0][0],zg.c[i-0][1],zg.c[i-0][2]);
}
else
printf("错误");
}

我不知道哪里错了,谁能告诉我
----------------解决方案--------------------------------------------------------
不好意思,在scanf语句中忘了"&amp;",但检索功能还是无法实现,谁能告诉我该怎样改?
----------------解决方案--------------------------------------------------------
搜索时,IF...ELSE 改为循环语句。
----------------解决方案--------------------------------------------------------
printf("检索学生姓名学号:");
int jxh[10][10];
char jxm[10][9];
scanf("%s %d",&jxm[0],&jxh[0]);
if(jxm[0]==zg.name[i-0]||jxh[0]==zg.no[i-0])
for(i=0;i<10;i++){ //上下最好对调一下
printf("%s %d %d %d %d",zg.name[i-0],zg.no[i-0],zg.c[i-0][0],zg.c[i-0][1],zg.c[i-0][2]);
}
else
printf("错误");
}

----------------解决方案--------------------------------------------------------
o 照做了,还是不行,会不会是if的条件语句有问题,或者是结构有问题.
----------------解决方案--------------------------------------------------------
回复:(kingyor)o 照做了,还是不行,会不会是if的条...
是!结构大有问题。
你定义的结构怪怪的。
通常应定义为结构体数组。
建议你在坛子里搜索,同类主题多着哩。
----------------解决方案--------------------------------------------------------
  相关解决方案