s1e15求解
大佬,求解!为什么输入非自然数,比如1.2,scanf的返回值不是1?如果输入1.2,scanf的返回值是几呢?
怎么理解下面这段话?
scanf的函数快查:
返回值:
如果函数调用成功,返回值是成功获取并填充到附加参数中的个数。
如果函数调用失败,返回值小于附加参数的个数(甚至是 0)。
如果读取到标准输入流的结尾处,则返回 EOF。 #include <stdio.h>
#include <conio.h>
int main()
{
float t;
float s;
int ln=scanf("%f%f",&t,&s);
printf("输入数据是%f ---%f函数返回长度是%d\n",t,s,ln);
int lns=scanf("%f",&t);
printf("输入数据是%f 函数返回长度是%d\n",t,lns);
return 0;
}
/*
PS D:\我> ./wp4
1.21.56789
输入数据是1.200000 ---1.567890函数返回长度是2
1.258
输入数据是1.258000 函数返回长度是1
*/ 直接把问题和代码贴出来不好么?
你的这个问题一点也不方便解答,因为还需要去找你这个问题的题目和代码
人造人 发表于 2021-8-13 16:41
直接把问题和代码贴出来不好么?
你的这个问题一点也不方便解答,因为还需要去找你这个问题的题目和代码
啊,这样
原题目是:请问下边程序输入什么值才能正常退出?
代码:#include <stdio.h>
int main()
{
int ch;
while (scanf("%d", &ch) == 1 && ch >= 0)
;
return 0;
}
我大概知道(scanf("%d", &ch) == 1 && ch >= 0)的原理
只是不知道为什么输入1.2之类的数scanf的返回值不是1?那返回值是多少呢? wp231957 发表于 2021-8-13 16:41
抱歉,菜鸟新人,看不懂......{:10_266:} 河岸柳 发表于 2021-8-13 16:57
啊,这样
原题目是:请问下边程序输入什么值才能正常退出?
代码:
#include <stdio.h>
int main()
{
int ch;
while (scanf("%d", &ch) == 1 && ch >= 0)
printf("\tch: %d\n", ch);
return 0;
}
输入输出
1.2
ch: 1
请先自己分析一下为什么是这个输出
人造人 发表于 2021-8-13 17:02
输入输出
请先自己分析一下为什么是这个输出
因为int?{:10_262:} 河岸柳 发表于 2021-8-13 17:55
因为int?
我不知道你在说什么
输入 1.23
第一次 获取到 1
第二次 获取的时候失败了,因为 1 已经读取了,1 后面的 。(点)无法读取,因为是 %d 格式
人造人 发表于 2021-8-13 18:13
我不知道你在说什么
输入 1.23
第一次 获取到 1
所以了,我给他演示浮点数如何提取,它说看不懂,没办法,只能闪人 wp231957 发表于 2021-8-13 18:39
所以了,我给他演示浮点数如何提取,它说看不懂,没办法,只能闪人
^_^ 人造人 发表于 2021-8-13 18:13
我不知道你在说什么
输入 1.23
第一次 获取到 1
{:10_266:}啊
我知道是因为int是整形数据,所以对于1.2只获取1......
我也试过把int改成float或double,把%d改成%lf去实验一下.......然后得出奇奇怪怪的结论,所以才来求助一下
额,我猜测一下,是因为int是整形数据,所以输入1.2,而1.2不是整数
所以按照scanf的返回值规定(如果函数调用失败,返回值小于附加参数的个数(甚至是 0))
scanf的返回值为0而不为1,不符合 scanf("%d", &ch) == 1 && ch >= 0 的要求
所以退出循环,是吗? 河岸柳 发表于 2021-8-13 22:20
啊
我知道是因为int是整形数据,所以对于1.2只获取1......
我也试过把int改成float或double ...
是 wp231957 发表于 2021-8-13 18:39
所以了,我给他演示浮点数如何提取,它说看不懂,没办法,只能闪人
大佬,对萌新手下留情啊.....{:10_266:}
刚学没几天,真的看不懂啊......{:10_285:}
没有听过浮点数的提取......{:10_250:} 人造人 发表于 2021-8-13 22:24
是
感谢
最佳答案要设哪一条啊?{:10_291:} 河岸柳 发表于 2021-8-13 22:36
感谢
最佳答案要设哪一条啊?
你随意,^_^ 河岸柳 发表于 2021-8-13 22:36
感谢
最佳答案要设哪一条啊?
随便你咯
页:
[1]