源码出了问题,求高手赐教
#include<stdio.h>#include<stdlib.h>
#define N 20
struct student
{
char num[8];
char name[10];
int score[7];
float avg[6];
int sum[6];
}stu[20];
void main()
{
printf(" 学生成绩管理系统\n");
printf(" 1.修改成绩\n");
printf(" 2.统计成绩 \n");
printf(" 3.查询成绩 \n");
printf(" 4.输出成绩单 \n");
printf("\n");
printf("please input you choice:\n");
char a;
scanf("%c",&a);
switch(char a)
{
case 1:printf("修改学生的成绩\n");break;
case 2:printf("统计学生的成绩\n");break;
case 3:printf("查询学生的成绩\n");break;
case 4:printf("按班级输出成绩单\n");break;
default :printf("不执行任何操作\n");
}
getchar();
}
为什么一按下回车就显示的是不执行任何操作,之后没有什么内容呢
如果我想输入1,就显示修改学生成绩,输入二就显示修改统计学生成绩
哪么该如何修改这段代码,才能实现呢
----------------解决方案--------------------------------------------------------
1,2,3,4应该要加单引号吧
----------------解决方案--------------------------------------------------------
switch(char a) //switch(整型常量表达式);去掉char;
case 1:case 2:case 3: case 4://1,2,3,4,字符应加单引;
[[it] 本帖最后由 now 于 2008-6-18 11:36 编辑 [/it]]
----------------解决方案--------------------------------------------------------
void main()
{
int c=1,i;
printf(">>--- ------ --- 学生成绩管理系统-----------<<\n");
printf(" >>------------ 1.修改成绩-- -- --- --- -<<\n");
printf(" >>------------ 2.统计成绩-- -- -- -- ---<<\n");
printf(" >>------------ 3.查询成绩-- --- ---- - -<<\n");
printf(" >>------------ 4.输出成绩单--- - --- ---<<\n");
printf(" >>------------ 0.退出--- - --- ---<<\n");
printf(">>-----*-------------*------------*-------<<\n");
while (c!=0)
{
printf("请按表输入序列号");
scanf("%d",&c);
putchar('\n');
if(c>=0&&c<=4)
switch(c)
{
case 1:printf("修改学生的成绩\n");break;
case 2:printf("统计学生的成绩\n");break;
case 3:printf("查询学生的成绩\n");break;
case 4:printf("按班级输出成绩单\n");break;
}
else
printf ("你的输入有误!请重新");
}
}
----------------解决方案--------------------------------------------------------
为什么一按下回车就显示的是不执行任何操作,之后没有什么内容呢
那是因为程序已经退出了,要实现你的功能有两种思路:
其一:switch语句完成后使用goto语句到scanf函数出;
其二:学习楼上的使用死循环。
----------------解决方案--------------------------------------------------------
不应该用char吧~!
括号里边的
----------------解决方案--------------------------------------------------------