c语言 运行错误 帮忙改改 速度的来

来源:百度知道 编辑:UC知道 时间:2024/05/22 07:38:59
#include <stdio.h>
int i,chinese[5],math[5],flanguage[5],computer[5];
long number[5];
char name[5];
void main()
{
int n,t;
void shuru(long a,char b,int c,int d,int e,int f);
void chaxun(long a,char b,int c,int d,int e,int f);
void xiugai(long a,char b,int c,int d,int e,int f);
void shuchu(long a,char b,int c,int d,int e,int f);
void tuichu(long a,char b,int c,int d,int e,int f);
printf("按1继续,按0退出\n");
scanf("%d",&t);
while(t!=0)
{
printf("请选择操作\n1 输入成绩\n 2 查询成绩\n 3 修改成绩\n 4 输出成绩细目\n 5 退出\n");
scanf("%d",&n);
switch(n)
{
case 1: shuru(number[i],name[i],chinese[i],math[i],flanguage[i],computer[i]);break;
case 2: chaxun(number[i],name[i],chinese[i],math[i],flanguage[i],computer[i]);break;
case 3: xiugai(number[i],name[i],chinese[i],math[i],flanguage[i],computer[i]);break;

1.shuru(number[i],name[i],chinese[i],math[i],flanguage[i],computer[i]);
这个地方你调用的只是没有的的 怎么进行传递 下面几个一样
2.scanf("%ld,%s,%d,%d,%d,%d\n",number[i],name[i],chinese[i],math[i],flanguage[i],computer[i]);
改为
scanf("%ld,%s,%d,%d,%d,%d\n",&number[i],name[i],&chinese[i],&math[i],&flanguage[i],&computer[i]);
%s 给它 name[i] 这么些是错的 name[i] 表示的是一个字符
你应该把 char name[5]; 改为指针数组 char *name[5]
那么上面的就是对的
3.void xiugai(long a,char b,int c,int d,int e,int f)
{
int q;
printf("请输入要修改学生的顺序号\n");
for(i=1;i<=5;i++)
printf("%d,%4ld,%4s\n",i,number[i],name[i]);
scanf("%d",&q);
i=q;
printf("请输入该生信息\n");
printf("学号 姓名 语文 数学 外语 计算机\n");
scanf("%ld,%s,%d,%d,%d,%d",number[i],name[i],chinese[i],math[i],flanguage[i],computer[i]);
}

上面这个函数 要动大手术