简单C语言改错,刚开始学的,编了一个小程序就是不知道哪里有问题,不会改。求C语言大神帮忙
#include<stdlib.h>
#define N 10
#define M 3
int password();
void menu();
void num_score();
void kecheng_score();
void num_kecheng();
void inputstu();
int score[N][M],i,j,num,flag;
float sum;
int main()
{
int select,flag;
password();
while(flag)
{
system("cls");
menu();
printf("*************************\n");
printf(" 请选择主菜单序号1-5:");
scanf("%d",&select);
switch(select)
{
case 1:num_score() ;break;
case 2:kecheng_score();break;
case 3:num_kecheng();break;
case 4:inputstu();break;
case 5:flag=0;
}
}
}
int password()
{
int i;
long pw;
system("cls");
for(i=3;i>0;i--)
{
printf("\n\t\t 请输入密码(您还有%d次机会);",i);
scanf("%d",&pw);
if(pw==123456){flag=1;break;}
else flag=0;
}
return flag;
}
void menu()
{
printf("\n\n");
printf(" 欢迎使用学生查询系统!\n\n");
printf("***********************************");
printf(" 请选择查询对象: \n\n");
printf(" 1 欢迎使用学生查询系统!\n\n");
printf(" 2 据学查询成绩及平均成绩\n\n");
printf(" 3 据学生学查询学生成绩\n\n");
printf(" 4 学生原始数据依次输入\n\n");
printf(" 5 退出本系统\n\n");
}
void num_score()
{
printf("请输入查询学生的学号\n");
scanf("%d",&num);
for(i=0;i<N;i++)
if(num==score[i][0])
for(j=1;j<M;j++)
{
printf("%d号课程成绩是%d\n",j,score[i][j]);
sum+=score[i][j];
}
printf("%d号学生的平均成绩为%d\n",num,sum/(M-1));
}
void kecheng_score()
{
printf("查询课程的代号(1-%d"): \n",M-1);
scanf("%d",&j);
for(i=0;i<N;i++)
{
printf("查询课程的代号(1-%d): \n",M-1);
scanf("%d",&score[i][j]);
} 展开
这句,你多写了个双引号。
你的问题很多,你里边有两个函数都没有写执行体
void num_kecheng();
void inputstu();
这两个函数仅仅定义了,但是没有方法执行
你的flag变量定义了两次而且都没有给赋初值,你全局定义了一次局部又定义了一次。看你的代码估计就想用一个所以不要再main()函数中在定义了。我大概把问题找完了,因为没具体看你的代码是做什么的,所以后边两个方法你自己补齐一下
#include<stdio.h>
#include<stdlib.h>
#define N 10
#define M 3
int password();
void menu();
void num_score();
void kecheng_score();
void num_kecheng();
void inputstu();
int score[N][M],i,j,num,flag=0;
float sum;
int main()
{
int select;
password();
while(flag)
{
system("cls");
menu();
printf("*************************\n");
printf(" 请选择主菜单序号1-5:");
scanf("%d",&select);
switch(select)
{
case 1:num_score() ;break;
case 2:kecheng_score();break;
case 3:num_kecheng();break;
case 4:inputstu();break;
case 5:flag=0;
}
}
}
int password()
{
int i;
long pw;
system("cls");
for(i=3;i>0;i--)
{
printf("\n\t\t 请输入密码(您还有%d次机会)\n\t\t",i);
scanf("%d",&pw);
if(pw==123456){flag=1;break;}
else flag=0;
}
return flag;
}
void menu()
{
printf("\n\n");
printf(" 欢迎使用学生查询系统!\n\n");
printf("***********************************");
printf(" 请选择查询对象: \n\n");
printf(" 1 欢迎使用学生查询系统!\n\n");
printf(" 2 据学查询成绩及平均成绩\n\n");
printf(" 3 据学生学查询学生成绩\n\n");
printf(" 4 学生原始数据依次输入\n\n");
printf(" 5 退出本系统\n\n");
}
void num_score()
{
printf("请输入查询学生的学号\n");
scanf("%d",&num);
for(i=0;i<N;i++)
if(num==score[i][0])
for(j=1;j<M;j++)
{
printf("%d号课程成绩是%d\n",j,score[i][j]);
sum+=score[i][j];
}
printf("%d号学生的平均成绩为%d\n",num,sum/(M-1));
}
void kecheng_score()
{
printf("查询课程的代号(1-%d): \n",M-1);
scanf("%d",&j);
for(i=0;i<N;i++)
{
printf("查询课程的代号(1-%d): \n",M-1);
scanf("%d",&score[i][j]);
}
}
void num_kecheng(){
}
void inputstu(){
}