case语句中能写scanf()函数吗?

来源:百度知道 编辑:UC知道 时间:2024/06/08 01:40:09
#include <stdio.h>
void main(){
char day,ch;
printf("input day: ");
scanf("%c",&day);
switch (day){
case 'M':printf("Monday!\n");break;
case 'F':printf("Friday!\n");break;
case 'W':printf("Wednesday!\n");break;
case 'T':printf("input second char:\n");
scanf("%c",&ch);
if(ch=='h')
printf("Thursday!\n");
else if(ch=='u')
printf("Tuesday!\n");
else
printf("error!\n");
break;
case 'S':printf("input second char:\n");
scanf("%c",&ch);
if(ch=='a')
printf("Sataday!\n");
else if(ch=='u')
printf("Sunday!\n");
else

可以写,程序看起来似乎没问题。

可以,但是由于ch 和 day 是switch之前定义的,所以如果不是每个case都对这两个进行赋值,就会有警告。可以在定义时对它们进行初始化。