求检查一下C语言程序哪里出错了
发布网友
发布时间:2024-04-05 16:41
我来回答
共3个回答
热心网友
时间:2024-04-05 22:00
/* Note:Your choice is C IDE */
#include<stdio.h>
int main()
{
int i,c_ir=0,c_r=0;
long x=0;
float sg,tz,a=0,b;
for(i=0;1;i++)
{
printf("请输入密码 :\n");
scanf("%ld",&x);
if (x==123)
{
printf(" 密码正确!\n");
break;
}
else if (i<2)
printf("密码错误,请重新输入:\n");
else
exit(0);
}
for(i=0;1;i++)
{
printf("请输入你的身高(m):\n");
scanf("%f",&sg);
printf("请输入你的体重(kg):\n");
scanf("%f",&tz);
if(sg<=0||tz<=0)
break;
else
{
b=tz/sg/sg;
if (b<18)
{
printf("偏瘦!");
c_ir++;
}
else if (b<25)
{
printf("正常!");
c_r++;
}
else if (b<30)
{
printf("微度肥胖!");
c_ir++;
}
else if (b<35)
{
printf("轻度肥胖!");
c_ir++;
} else if (b<40)
{
printf("中度肥胖!");
c_ir++;
}
else
{
printf("重度肥胖!");
c_ir++;
}
}
}
printf("\n正常人数:%d,百分比:%.2f\n非正常人数:%d,百分比:%.2f",
c_r,(float)c_r/(c_r+c_ir),c_ir,(float)c_ir/(c_r+c_ir));
return 0;
}
稍微改动了一点点,改成能用。但其他逻辑方面还是可以继续改的。
比如 for i=0 i i++ 这个 就相当于 while,也没有你种写法,虽然你这样写能用
测试结果:
请输入密码 :
123
密码正确!
请输入你的身高(m):
1.8
请输入你的体重(kg):
65
正常!请输入你的身高(m):
1.8
请输入你的体重(kg):
70
正常!请输入你的身高(m):
1.8
请输入你的体重(kg):
80
正常!请输入你的身高(m):
1.8
请输入你的体重(kg):
85
微度肥胖!请输入你的身高(m):
1.7
请输入你的体重(kg):
75
微度肥胖!请输入你的身高(m):
1.7
请输入你的体重(kg):
70
正常!请输入你的身高(m):
1.7
请输入你的体重(kg):
65
正常!请输入你的身高(m):
1.7
请输入你的体重(kg):
60
正常!请输入你的身高(m):
1.7
请输入你的体重(kg):
55
正常!请输入你的身高(m):
1.7
请输入你的体重(kg):
50
偏瘦!请输入你的身高(m):
0
请输入你的体重(kg):
0
正常人数:7,百分比:0.70
非正常人数:3,百分比:0.30
Press any key to continue
追问谢谢
追答你仔细对比我改了哪些地方就会明白。那个判断那里 我加了个=号,也就是<=0的时候,break。
热心网友
时间:2024-04-05 22:00
for(i=0;1;i++)死循环条件,循环体里又没有break,循环肯定退不出来呀。
你不管是偏瘦还是肥胖啥的都c++ 那c最后就是总人数呗,那你还不如放在if语句的外面,
你可以给每一种身体情况都定义一个变量用来统计,例如偏胖就a++ 偏瘦就b++ 这样循环过后你可以用这些变量除以c来获得所占的百分比
我正在写一些适合初学者看的文章,感兴趣,你可以在百度搜索 "创建第一个c语言程序",百度经验和csdn博客里都有。
热心网友
时间:2024-04-05 22:00
for(i=0;1;i++) ,你写了1 不就是让他无限循环?追问应该怎么改呢?
不用1 ,那用什么能统计N个人的呢?