短程序,根据是否是闰年,在没有使用控制结构分支语句的情况下查找2月份的天数
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a;
int b;
printf("Press 1 for leap year else Press any character:");
scanf("%c",&a);
(a==1)?(b=29):(b=28);
printf("Number of days in February=%d",b);
return 0;
}
它给出了与答案相同的结果28?
答案 0 :(得分:1)
这是因为a不等于1而是字符&#39; 1&#39;所以你必须写:
(a == '1')?(b=29):(b=28);
答案 1 :(得分:1)
将变量a的数据类型更改为整数。试试这个它会正常工作。
int main()
{
int a,b;
printf("Press 1 for leap year else Press any character:");
scanf("%d",&a);
(a==1)?(b=29):(b=28);
printf("Number of days in February=%d",b);
return 0;
}
答案 2 :(得分:0)
如果您将输入设为1。 您的代码将字符'1'与整数1.ascii值'1'进行比较为49。 所以,49!= 1 因此,您的代码执行false块。
因此,您必须将条件替换为(a=='1')?(b=29):(b=28);
。