本文共 972 字,大约阅读时间需要 3 分钟。
输入一个或两个字母,输出星期几。
#include <stdio.h>
void main( ){ char c; c = getchar(); if(c >= 'a' && c <= 'z') c -= 'a' - 'A'; switch(c) { case 'M': printf("星期一"); break; case 'T': printf("请输入第二个字母/n"); c = getchar(); if(c == 'u' || c == 'U') printf("Tuesday/n"); else if(c=='h' || c=='H') printf("Thursday/n"); else printf("输入错误!/n"); break; case 'W': printf("Wednesday/n"); break; case 'F': printf("Friday/n"); break; case 'S': printf("请输入第二个字母/n"); c = getchar(); if(c == 'a' || c == 'A') printf("Saturday/n"); else if(c=='u' || c=='U') printf("Sunday/n"); else printf("输入错误!/n"); break; default: printf("输入错误!/n"); }}程序的问题在于输入t回车后,程序输出“请输入第二个字母”后直接退出,显然下面 c = getchar();语句好像没有执行。
调试时断点设在这条语句上。按F5调试执行程序。当程序执行完 c = getchar();语句后,变量c的值为10,应该为'/n',实际上是第一次输入时剩余的字符。因此此处应再加一条输入语句。
case 'T':
printf("请输入第二个字母/n"); c = getchar();//用于得到上次输入时剩余的/n c = getchar(); if(c == 'u' || c == 'U') printf("Tuesday/n"); else if(c=='h' || c=='H') printf("Thursday/n"); else printf("输入错误!/n"); break;转载地址:http://nfdti.baihongyu.com/