C语言——实例031 输入字母判断星期几

这篇博客探讨了在C语言中根据输入的字母判断星期的问题。作者遇到三个程序实例的困难,包括如何初始化字符变量,以及字符数组和网络找到的程序代码存在的问题。在每个实例中,输入特定字母组合后,程序并未得到预期的正确输出。

第一个程序:即使去掉while循环,先后输入T u,得不到理想结果,输入 T h,得到理想结果(星期四),不知道是什么问题

不知道怎么初始化字符类型为空


/*
	Name: 
	Copyright: 
	Author: 
	Date: 31/07/17 10:15
	Description: 
		【程序31】题目:请输入星期几的第一个字母来判断一下是星期几,
		如果第一个字母一样,则继续判断第二个字母。
	?
*/	

#include <stdio.h>
int main()
{
	char letter;
	printf("请输入星期几的第一个字母:");
	letter = getchar();
//	while(printf("请输入星期几的第一个字母:") && (letter = getchar()) != 'Y') 
//	{
		switch(letter)
		{
			case 'M':
				printf("Monday : 星期一\n\n");
				break;
			case 'T':
				printf("请输入第二个字母:");
				if((letter = getchar()) == 'u')
				{
					printf("Tuesday : 星期二\n\n");
					break;
				}
				else if((letter = getchar()) == 'h')
				{
					printf("Thursday : 星期四\n\n");
					break;
				}
				else 
				{
					printf("T 第二个字母输入错误!!!\n\n");
					break;
				} 				
			case 'W':
				printf("Wednesday : 星期三\n\n");
				break;
			case 'F':
				printf("Friday : 星期五\n\n");
				break;
			case 'S':
				printf("请输入第二个字母:");
				if((letter = getchar()) == 'a')
				{
					printf("Saturday : 星期六\n\n");
					break;
				}
				else if((letter = getchar()) == 'u')
				{
					printf("Sunday : 星期天\n\n");
					break;
				}
				else 
				{
					printf("S 第二个字母输入错误!!!\n\n");
					break;
				}  
			default:
				printf("请重新输入!!!\n\n");
				break;				 
		}
	//}
	return 0;
} 



第二个程序:用字符数组,还是错误,找不到原因

/*
	Name: 
	Copyright: 
	Author: 
	Date: 31/07/17 10:15
	Description: 
		【程序31】题目:请输入星期几的第一个字母来判断一下是星期几,
		如果第一个字母一样,则继续判断第二个字母。
	?
*/

#include <stdio.h>
int main()
{
	char letter[2];
	//while(1) 
	//{
		printf("请输入星期几的第一个字母:");
		scanf("%c",&letter[0]);
	
		switch(letter[0])
		{
			case 'M':
				printf("Monday : 星期一\n\n");
				break;
			case 'T':
				printf("请输入第二个字母:");
				if((scanf("%c",&letter[1])) == 'u')
				{
					printf("Tuesday : 星期二\n\n");
					break;
				}
				else if((scanf("%c",&letter[1])) == 'h')
				{
					printf("Thursday : 星期四\n\n");
					break;
				}
				else 
				{
					printf("T 第二个字母输入错误!!!\n\n");
					break;
				} 
			case 'W':
				printf("Wednesday : 星期三\n\n");
				break;
			case 'F':
				printf("Friday : 星期五\n\n");
				break;
			case 'S':
				printf("请输入第二个字母:");
				if((scanf("%c",&letter[1])) == 'a')
				{
					printf("Saturday : 星期六\n\n");
					break;
				}
				if((scanf("%c",&letter[1])) == 'u')
				{
					printf("Sunday : 星期天\n\n");
					break;
				}
				else 
				{
					printf("S 第二个字母输入错误!!!\n\n");
				} 
			default:
				printf("请重新输入!!!\n\n");					
				break;
		}						 
//	}
	return 0;
} 

第三个程序:从网上找的, 改动一下,还是有问题。输入第一个字母没问题,但是当输入过第二个字母后,再次输入,结果都不正确

/*
	Name: 
	Copyright: 
	Author: 
	Date: 31/07/17 10:15
	Description: 
		【程序31】题目:请输入星期几的第一个字母来判断一下是星期几,
		如果第一个字母一样,则继续判断第二个字母。
	?
*/

#include<stdio.h>

int main()
{
	char i,j;
	while(printf("请输入第一个字母:") && scanf("%c",&i) != EOF)
	{
		getchar();
		switch(i)
		{
			case 'M':
				printf("Monday\n\n");
				break;
			case 'W':
				printf("Wednesday\n\n");
				break;
			case 'F':
				printf("Friday\n\n");
				break;
			case 'T':
	            printf("请输入下一个字母:");
	            scanf("%c",&j);
	            if (j == 'u') 
				{
					printf("Tuesday\n\n");
					break;
				}
	            if (j == 'h') 
				{
					printf("Thursday\n\n");
					break;
				}
			case 'S':
	            printf("请输入下一个字母:");
	            scanf("%c",&j);
	            if (j == 'a') 
				{
					printf("Saturday\n\n");
					break;
				}
	            if (j == 'u') 
				{
					printf("Sunday\n\n"); 
					break;
				}
	    	default :
	            printf("error\n"); 
				break;
	    }
	}	
    return 0;
}



运行结果:




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值