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

大家帮忙看看吧,不知道哪出的异常!万分感谢

2012-10-24 
大家帮忙看看吧,不知道哪出的错误!万分感谢!/*******************************************************//

大家帮忙看看吧,不知道哪出的错误!万分感谢!
/*******************************************************/
/* 对候选人得票的统计成绩。 */
/* 设有3个候选人,每次输入一个得票的候选人的名字,要求 */
/* 最后输出各人得票结果。 */
/*******************************************************/

#include <stdio.h>
#include <string.h>

struct person //定义结构体,并对结构体数组初始化。
{
char name[20];
int cout;

} leader[3] = {{"Li", 0}, {"Zhang", 0}, {"Fun", 0}};

void main()
{
int i, j;
char leader_name[20];

while(1)
{
scanf("%s", leader_name);

for(j = 0; j < 3; j++)
{
if(strcmp(leader_name, leader[j].name) == 0)
{
leader[j].cout++;
}
}
if(getchar() == '*')
{
break;
}
}
printf("\n");

for(i = 0; i < 3; i++)
{
printf("%5s:%d\n", leader[i].name, leader[i].cout);
}
}

[解决办法]

C/C++ code
    while(1)    {        scanf("%s", leader_name);                for(j = 0; j < 3; j++)        {            if(strcmp(leader_name, leader[j].name) == 0)            {                leader[j].cout++;            }        }        fflush(stdin); //不刷新,读入的可能是回车了。        if(getchar() == '*')        {            break;        }    }
[解决办法]
getchar()获取的是输入缓冲区的内容
缓冲区里面存放的还是上次输入*之后的那个回车符
所以判断失效
http://www.cnblogs.com/codingmylife/archive/2010/04/18/1714954.html

热点排行