回 帖 发 新 帖 刷新版面

主题:[原创]学生成绩管理系统

#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,就显示修改学生成绩,输入二就显示修改统计学生成绩
哪么该如何修改这段代码,才能实现呢

回复列表 (共3个回复)

沙发

应该不是这样的 而且你的这种思路不好实现强大的功能

板凳

把switch(char a)改成switch(a)
case后面的数字用单引号括起来
getchar()改成 a=getchar()并把这一句放到switch前面
这样应该就可以了吧!

3 楼

char a改为int a 
还有switch里面不要在定义了

我来回复

您尚未登录,请登录后再回复。点此登录或注册