全部问题 > 当前问题

为什么这两个程序无法组建完成??请问这两个程序是哪里地方出错了,所以才导致无法执行程序呢??

#include<stdio.h>

main()

{

int a;

switch(a/10)

{

case 10:

printf("优\n");break;

case 9:

printf("优\n");break;

case 8:

printf("良\n");break;

case 7:

printf("中\n");break;

case 6:

printf("及格\n");break;

default:

printf("不及格\n");break;

}

}

和#include<>

main()

{

int days;

scanf("%d天\n",&days);

switch(month)

{

case 2:

days=28;break;

case 4:case 6:case 9:case 11:

days=30;break;

default:

days=31;break;

}

printf("%d天\n",days);

}


山有木兮木有枝 2016-5-28 22:36:16

共 3 个回答

最佳答案

嘿嘿大人 2016-5-29 00:27:44

第一个,你的a没有赋值。 第二个,scanf语句的双引号里面的东西必须要原样输入才行,如果你这么写,在控制台输入就必须是"3天换行",可以改为scanf("%d",&days);,还有就是你的month没有定义,也没有赋值,以上是你语法错误,第二个还有逻辑的错误,你的scanf语句应该输入的是month变量的值才对,days的值是由switch语句自动判断的

山有木兮木有枝 2016-5-29 20:34:13

回复 嘿嘿大人:哦,第二个我明白了,但是第一个还是不太懂。第一个的程序本来不就是判定我在执行这个程序的时候输入的那个数字是属于哪个范围的,而输出哪个结果吗?为什么要先赋值呢?如果要赋值,应该怎么赋啊??

嘿嘿大人 2016-5-30 10:57:46

回复 山有木兮木有枝:你的a不赋值就是一个无意义的数啊,他是一个六位的整形随机无意义的数,你这个事要判断一百分范围分等级吧,你必须要先给a一个一百以内的数才能判断等级啊,计算机和人不一样的,你人可以一眼看到的,计算机需要判断的,所以你可以在定义的时候直接给a赋值,也可以用scanf语句给a赋值,如果你学了随机数,你也可以给a随机赋值一个100以内的数