这是我的C简介Web类的分配。
源代码(正在进行中(:
#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!
是的,因此,如果答案的"性别"答案,这似乎可以打印出两种结果。m
是否确保必须满足?还是可以实现这一目标?
edit3:
感谢您的非常快的答案!当网站允许我这样做时,将标记为解决。
您在每个条件
中都有半色if (sex == 'm' && age <= 55);
{
printf("Olet mies parhaassa iässä!");
}
if (age >= 56 && sex == 'm');
{
printf("Olet viisas mies!");
}
,无论您给出什么输入
,您的消息都将被打印删除这些;并使用其他条件:
if (sex == 'm' && age <= 55)
{
printf("Olet mies parhaassa iässä!");
}
else if (age >= 56 && sex == 'm')
{
printf("Olet viisas mies!");
}
您只需要删除即可;从if语句。休息很好。
if (sex == 'm' && age <= 55);
if()
之后的;
对if()
进行了空白。因此,语句printf()
不在if()
要澄清问题,如果在if
之后您不使用括号,则只有一行代码在其块内。当行以;
结束时,只需放置一个;
即可在此处放置一个空线。这样:
if (condition)
;
next line....
括号是单行如果块的可选,则必须使用更多行。例如:
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!");
}
}