Проблема заключается в том, что на выходе атрибуты sp, bp, temp, cold, fever и stomach назначаются значениями мусора, а также строки, введенные для symp [i], не сохраняются должным образом. Это еще не полная программа, у нее есть еще несколько дополнений.Значения мусора, назначаемые при использовании динамического ввода; на языке C
программа следующим образом .. файлы заголовков 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