我无法找到do-while上的错误。如果我回答'N'这个问题,循环会继续下去(该应用程序用于查找不确定人数的平均高度)。我没有找到错误
#include <stdio.h>
#include <stdlib.h>
/*
*
*/
int main(int argc, char** argv) {
int i;
float measure[i],sum,average;
char sex;
char yn;
do{
for(i=1;i;i++) {
printf("Persoa %d",i);
printf("\nIndique se é home (H) ou muller (M): ");
scanf("%s",&sex);
while((sex != 'M') && (sex != 'H'))
{
printf("Lo ha escrito mal.");
printf("\nIndique se é home (H) ou muller (M): ");
scanf("%s",&sex);
}
printf("Indique a súa measure (en metros): ");
scanf("%f",&measure[i]);
sum=sum+measure[i];
printf("\nDesea seguir? (Y/N): ");
scanf("%s",&yn);
while((yn != 'Y') && (yn != 'N'))
{
printf("Lo ha escrito mal.");
printf("\nDesea seguir? (Y/N): ");
scanf("%s",&yn);
}
}
}while(yn == 'Y');
average=sum/i;
printf("\nA media de measures é: %f m.",average);
return (EXIT_SUCCESS);
需要帮助的人。我需要明天将这件事寄给我的老师。我对这种语言:(
这看起来像C/C++,不C#。 –
“for”的用途是什么?你只有一个循环,所以你可以自己追踪''i''变量,而不需要''for''来启动你。 – SWeko
scanf()调用破坏堆栈,任何事情都是可能的。 yn变量是%c,而不是%s –