C语言程序设计课后习题第四章习题9是不是写错了?
光看第一问,这样写的if语句,一个数>999,那肯定也大于99和9,这样执行能对么?而且我写的一段在dev-c++上运行,无论输入大于9的什么数字,出来结果都是2;而且我...
光看第一问,这样写的if语句,一个数>999,那肯定也大于99和9,这样执行能对么?而且我写的一段在dev-c++上运行,无论输入大于9的什么数字,出来结果都是2;而且我输入小于9的数字,它还是2,不理解,这是我的第一问的代码:
#include <stdio.h>
int main()
{
int i,k;
printf("请输入数字");
scanf("请输入数值%d",i);
if(i>9999)k=5;
else if(i>999)k=4;
else if(i>99)k=3;
else if(i>9)k=2;
else k=1;
printf("K的值为%d",k);
return 0;
}
为什么输入小于9的数字,输出结果还是2呢?
但是课本上竟然写出了运行结果:
书记是谭浩强的清华大学出版的C语言程序设计课后辅导及习题答案,第四章的第九题。 展开
#include <stdio.h>
int main()
{
int i,k;
printf("请输入数字");
scanf("请输入数值%d",i);
if(i>9999)k=5;
else if(i>999)k=4;
else if(i>99)k=3;
else if(i>9)k=2;
else k=1;
printf("K的值为%d",k);
return 0;
}
为什么输入小于9的数字,输出结果还是2呢?
但是课本上竟然写出了运行结果:
书记是谭浩强的清华大学出版的C语言程序设计课后辅导及习题答案,第四章的第九题。 展开
2个回答
展开全部
scanf会严格匹配输入格式,所以是 :
scanf("%d", &i);
不是:
scanf("请输入数字%d", &i); //!!!!!
dev-c++没任何问题~~
scanf("%d", &i);
不是:
scanf("请输入数字%d", &i); //!!!!!
dev-c++没任何问题~~
追问
那么在C里面条件语句这样写,虽然下面的条件也符合上面的,大于999,也大于99,它是选择最早的那条执行?
追答
if-else只会执行某一分支,按顺序,当上面的分支执行了以后,下面的else语句中的分支自然不会执行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询