这是我的C介绍网络课程的作业。
源代码(进行中):
#include <stdio.h>
int main ()
{
int age, output;
char sex, test;
printf("Oletko mies vai nainen (m/n)? ");
scanf("%c", &sex);
printf("Anna ikäsi: ");
scanf("%d", &age);
if (sex == 'm' && age <= 55);
{
printf("Olet mies parhaassa iässä!");
}
if (age >= 56 && sex == 'm');
{
printf("Olet viisas mies!");
}
}
结果:
Oletko mies vai nainen (m/n)? m
Anna ikäsi: 23
Olet mies parhaassa iässä!Olet viisas mies!
是的,所以,如果回答&#34; sex&#34;是m
,如何确保必须满足条件?或者甚至可以实现这个目标吗?
谢谢你的快速答案!当网站允许我时,将标记为已解决。
答案 0 :(得分:1)
在每个条件
中都有一个半颜色的额外颜色if (sex == 'm' && age <= 55);
{
printf("Olet mies parhaassa iässä!");
}
if (age >= 56 && sex == 'm');
{
printf("Olet viisas mies!");
}
因此,无论您提供什么作为输入,都会打印您的信息
删除那些;并使用if else条件:
if (sex == 'm' && age <= 55)
{
printf("Olet mies parhaassa iässä!");
}
else if (age >= 56 && sex == 'm')
{
printf("Olet viisas mies!");
}
答案 1 :(得分:1)
if (sex == 'm' && age <= 55);
;
之后的if()
为if()
生成一个空白的对帐单。因此,printf()
语句不在if()
答案 2 :(得分:1)
你只需要删除;来自if语句。休息很好。
答案 3 :(得分:0)
为了澄清这个问题,如果在if
之后你没有使用括号,那么只有一行代码会在其块内。当行以;
结尾时,只需放置一个;
,就会在那里放置一条空行。像这样:
if (condition)
;
next line....
对于单行if块,括号是可选的,但如果有更多行则是必需的。例如:
if (condition)
something;
else if (condition2)
{
something_else;
}
else if (condition3)
{
something_else;
something_else;
}
除此之外,您可以避免两次检查'm'
:
if (sex == 'm')
{
if (age <= 55)
{
printf("Olet mies parhaassa iässä!");
}
else if (age >= 56)
{
printf("Olet viisas mies!");
}
}