您的位置:首页 > 其它

原poj 2680(基础题)

2012-04-10 16:26 190 查看
scanf输入后回车留在缓冲区

不能直接gets()

简单保险的办法是用 fflush(stdin); 清除 输入缓冲区。你就 不用担心 输入行 残留 的数字,字符,空白和Enter 键:scanf(。。。); fflush(stdin); 再 gets();

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

struct pstate{
char sex[20] ;
float WBC ;
float RBC ;
int   HGB ;
int   HCT ;
int   PLT ;
};

int judge(pstate people)
{
int cnt = 0 ;
if (people.WBC < 4.0 || people.WBC > 10.0)
cnt++ ;
if (people.RBC < 3.5 || people.RBC > 5.5)
cnt++ ;
if (!strcmp(people.sex,"female"))
{
if (people.HGB < 110 || people.HGB > 150)
cnt++;
if (people.HCT < 36 || people.HCT > 40)
cnt++;
}
else
{
if (people.HGB < 120 || people.HGB > 160)
cnt++;
if (people.HCT < 42 || people.HCT > 48)
cnt++;
}
if (people.PLT < 100 || people.PLT > 300)
cnt++;
return cnt ;
}

int main()
{

int i,j ;
int n ;
scanf("%d",&n) ;

pstate peopel ;
while(n--)
{
scanf("%s",peopel.sex) ;
scanf(" %f",&peopel.WBC) ;
scanf(" %f",&peopel.RBC) ;
scanf(" %d",&peopel.HGB) ;
scanf(" %d",&peopel.HCT) ;
scanf(" %d",&peopel.PLT) ;
int resault = judge(peopel) ;
if (resault == 0)
printf("normal\n") ;
else
printf("%d\n",resault) ;
}

return 0 ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: