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语言程序设计课后辅导及习题答案,第四章的第九题。
展开
 我来答
寒曦的日常
2015-07-16 · TA获得超过350个赞
知道小有建树答主
回答量:190
采纳率:100%
帮助的人:212万
展开全部
scanf会严格匹配输入格式,所以是 :
scanf("%d", &i);
不是:
scanf("请输入数字%d", &i); //!!!!!

dev-c++没任何问题~~
追问
那么在C里面条件语句这样写,虽然下面的条件也符合上面的,大于999,也大于99,它是选择最早的那条执行?
追答
if-else只会执行某一分支,按顺序,当上面的分支执行了以后,下面的else语句中的分支自然不会执行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
wchyumo2011
2015-07-16 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2766万
展开全部
你的scanf写错了scanf("请输入数值%d",i);这句改为scanf("%d", &i);就可以了
更多追问追答
追问
知道了,scanf里面不能有其他字符串..
追答
可以有,但是这些字符在输入的时候也要打上去
比如scanf("%d,%d", &a, &b)你在输入的时候就得输入12,34这样才能正确
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式