首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

[待解决]程序运作不成功

2013-07-01 
[待解决]程序运行不成功程序运行不成功 不知问题出在哪里./*题目:请输入星期几的第一个字母来判断一下是星

[待解决]程序运行不成功
程序运行不成功 不知问题出在哪里.

/*题目:
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母.
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母.
2.程序源代码:*/
#include <stdio.h>//包含标准输入输出头文件
//主函数
void main()
{
char letter;//定义字符变量
printf("please input the first letter of someday\n");//输出提示
while((letter=getchar())!='Y')//当所按字母为Y时才结束
{
switch (letter)//根据获得的字符进行选择
{
case 'S'://
printf("please input second letter\n");//
if ((letter=getchar())=='a')//
printf("saturday\n");//
    else if ((letter=getchar())=='u')//
    printf("sunday\n");//
else//
printf("data error\n");//
break;//结束这个case
case 'F'://
printf("friday\n");//
break;//结束这个case
case 'M'://
printf("monday\n");//
break;//结束这个case
case 'T'://
printf("please input second letter\n");//
if ((letter=getchar())=='u')//
printf("tuesday\n");//
else if ((letter=getchar())=='h')//
printf("thursday\n");//
    else//
printf("data error\n");//
break;//结束这个case
case 'W'://
printf("wednesday\n");//
break;//结束这个case
default://
if ((letter=getchar())=='\n')//
printf("\n");//
else//
printf("data error\n");//
break;//
}//结束switch分支
}//结束while循环
}//结束主函数
[解决办法]
加头文件#include "stdafx.h"
[解决办法]

//你程序运行结果错误的原因在于,你没有清空字符输入缓冲

#include <stdio.h>//包含标准输入输出头文件
//主函数
void main()
{
char letter;//定义字符变量
printf("please input the first letter of someday\n");//输出提示
while((letter=getchar())!='Y')//当所按字母为Y时才结束
{
switch (letter)//根据获得的字符进行选择
{
case 'S'://
{//加了一个花括号 
printf("please input second letter\n");//

fflush(stdin);//我加了这段,用于清除上次输入的字符缓冲,以下的类似这样加这个函数可以了 
char letter2 = getchar();
if (letter2=='a')//
printf("saturday\n");//
else if (letter2=='u')//


    printf("sunday\n");//
else//
printf("data error: %c\n");//
break;//结束这个case
}
case 'F'://
printf("friday\n");//
break;//结束这个case
case 'M'://
printf("monday\n");//
break;//结束这个case
case 'T'://
printf("please input second letter\n");//
if ((letter=getchar())=='u')//
printf("tuesday\n");//
else if ((letter=getchar())=='h')//
printf("thursday\n");//
    else//
printf("data error\n");//
break;//结束这个case
case 'W'://
printf("wednesday\n");//
break;//结束这个case
default://
if ((letter=getchar())=='\n')//
printf("\n");//
else//
printf("data error\n");//
break;//
}//结束switch分支
}//结束while循环
}//结束主函数
[解决办法]
int getchar(void);//函数返回值为int,而不是char
[解决办法]
怎么个不成功法?
是编译错误?
是运行崩溃?
是运行结果不对?
还是程序起不来?
[解决办法]

#include <stdio.h>

void main()
{
char letter;
printf("please input the first letter of someday\n");
while((letter = getchar()) != 'Y')
{
getchar();
switch (letter)
{
case 'S':
printf("please input second letter\n");
letter = getchar();
getchar();
if (letter == 'a')
printf("saturday\n");
else if (letter == 'u')
printf("sunday\n");
else
printf("data error\n");
break;
case 'F':
printf("friday\n");
break;
case 'M':
printf("monday\n");
break;
case 'T':
printf("please input second letter\n");
letter = getchar();
getchar();
if (letter == 'u')
printf("tuesday\n");
else if(letter == 'h')
printf("thursday\n");
else
printf("data error\n");
break;
case 'W':
printf("wednesday\n");
break;
default:
if ((letter = getchar()) == '\n')
printf("\n");
else
printf("data error\n");
getchar();
break;
}
}
}

热点排行