当前位置: 代码迷 >> C语言 >> 源码出了问题,求高手赐教
  详细解决方案

源码出了问题,求高手赐教

热度:402   发布时间:2008-06-18 09:42:48.0
源码出了问题,求高手赐教
#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,就显示修改学生成绩,输入二就显示修改统计学生成绩
哪么该如何修改这段代码,才能实现呢
搜索更多相关的解决方案: printf  源码  char  

----------------解决方案--------------------------------------------------------
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吧~!
括号里边的
----------------解决方案--------------------------------------------------------
  相关解决方案