C 练习实例31
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
实例
// Created by www.facesoho.com on 15/11/9.
// Copyright © 2015年 小鸟启蒙. All rights reserved.
//
#include<stdio.h>
int main()
{
char i,j;
printf("请输入第一个字母:\n");
scanf("%c",&i);
getchar();//scanf("%c",&j);的问题,第二次是读入的一个换行符,而不是输入的字符,因此需要加一个getchar() 吃掉换行符
switch(i)
{
case 'm':
printf("monday\n");
break;
case 'w':
printf("wednesday\n");
break;
case 'f':
printf("friday\n");
break;
case 't':
printf("请输入下一个字母\n");
scanf("%c",&j);
if (j=='u') {printf("tuesday\n");break;}
if (j=='h') {printf("thursday\n");break;}
case 's':
printf("请输入下一个字母\n");
scanf("%c",&j);
if (j=='a') {printf("saturday\n");break;}
if (j=='u') {printf("sunday\n"); break;}
default :
printf("error\n"); break;
}
return 0;
}
以上实例输出结果为:
请输入第一个字母: s 请输入下一个字母 a saturday

文人墨客
参考方法:
#include<stdio.h> void special(char letter) { char letter2; printf("请再输入星期的第二个字母(小写):"); scanf("%*[^\n]"); //在第二次输入前要清除一下输入缓冲区,因为缓冲区里还有个换行符 scanf("%*c"); //如果在这里去掉这两行语句会直接显示输入错误 scanf("%c", &letter2); if(letter2 == 'u' && letter == 'T') printf("今天是星期二\n"); else if(letter2 == 'u' && letter == 'S') printf("今天是星期日\n"); else if(letter2 == 'h') printf("今天是星期四\n"); else if(letter2 == 'a') printf("今天是星期六\n"); else printf("输入错误\n"); } int main () { char letter; printf("请输入星期的第一个字母(大写):"); scanf("%c", &letter); switch(letter) { case 'M' : printf("今天是星期一\n"); break; case 'T' : special('T'); break; case 'W' : printf("今天是星期三\n"); break; case 'F' : printf("今天是星期五\n"); break; case 'S' : special('S'); break; default : printf("输入错误\n"); } return 0; }文人墨客
参考方法:
#include<stdio.h> int main(void) { char ch; printf("请输入第一个字母:\n"); ch = getchar(); getchar(); switch(ch) { case 'm': case 'M': printf("monday\n"); break; case 'w': case 'W': printf("wednesday\n"); break; case 'f': case 'F': printf("friday\n"); break; case 't': case 'T': { printf("请输入下一个字母:\n"); scanf(" %c",&ch); if(ch == 'h') printf("thursday\n"); if(ch == 'u') printf("tuesday\n"); break; } case 's': case 'S': { printf("请输入下一个字母:\n"); scanf(" %c",&ch); if(ch == 'a') printf("saturday\n"); if(ch == 'u') printf("sunday\n"); break; } } return 0; }文人墨客
/*只是在if语句中加了一个若输入第二个字符不符合星期的判错;*/ #include <stdio.h> int main() { char i,j; printf("请输入第一个字符:"); scanf("%c",&i); getchar(); switch(i) { case 'm': printf("monday\n"); break; case 't': printf("请输入下一个字母:"); scanf("%c",&j); getchar(); if (j == 'u') { printf("tuesday\n"); break; } if (j == 'e') { printf("thursday\n"); break; } else { printf("error"); break; } case 'w': printf("wedesday\n"); break; case 'f': printf("friday"); break; case 's': printf("请输入下一个字符:"); scanf("%c",&j); getchar(); if(j == 'a') { printf("satarday"); break; } if(j == 'u') { printf("sunday"); break; } else { printf("error"); break; } default: printf("error"); break; } return 0; }