【发布时间】:2015-03-17 15:34:56
【问题描述】:
问题是,在输出中,属性 sp、bp、temp、cold、fever 和胃被分配了垃圾值,而且为 symp[i] 输入的字符串没有正确存储。 这不是一个完整的程序,它还有一些额外的工作要做。
程序如下..头文件为stdio.h和conio.h
#include<stdio.h>
#include<conio.h>
void main()
{
char * symp[10];
int n=0,i,sp,dp,cold,fever,stomach;
float temp;
clrscr();
printf("Enter your body temperature: ");
scanf("%f",&temp);
printf("Enter your systolic BP: ");
scanf("%d",&sp);
printf("Enter your diastolic BP: ");
scanf("%d",&dp);
printf("Enter the no of symptoms: ");
scanf("%d",&n);
printf("Enter the symptoms you have, one by one\n");
fever=cold=stomach=0;
for(i=0;i<n;i++)
{
scanf("%s",symp[i]);
printf("i=%d\tn=%d\n",i,n);
if(symp[i]=="cough")
{ cold=cold+1;}
if(symp[i]=="sneezing")
{ cold=cold+1;}
if(symp[i]=="running_nose")
{ cold=cold+1;}
if(symp[i]=="headache")
{ cold=cold+1;fever=fever+1;}
if(symp[i]=="chill")
{ fever=fever+1; }
if(symp[i]=="weakness")
{ fever=fever+1; }
if(symp[i]=="stomach_pain")
{ stomach=stomach+1; }
if(symp[i]=="diarrhoea")
{ stomach=stomach+1;}
if(symp[i]=="vomiting")
{ stomach=stomach+1;fever=fever+1;}
if(symp[i]=="throat_pain")
{ cold=cold+1;}
if(symp[i]=="body_pain")
{ fever=fever+1;}
}
printf("Your temperature is: %f\n",temp);
printf("Your BP is: %d/%d\n",sp,dp);
printf("The symptoms are:\n");
for(i=0;i<n;i++)
{
printf("%s\n",symp[i]);
}
printf("cold: %d\nfever: %d\nstomach: %d",cold,fever,stomach);
getch();
}
【问题讨论】:
-
请缩进并删除空行。没有人喜欢滚动。
-
你必须检查
scanf()返回值,你不能抱怨垃圾值,因为你的代码不安全,因为它没有错误检查。 -
您的某些
if条件缺少大括号{}。 -
@user694733 你有鹰眼,在这乱七八糟的情况下你怎么能注意到这一点?
-
你想用
if(symp[i]=="cough")做什么?
标签: c