1613551 发表于 2022-8-14 22:20:50

关于scanf函数的问题

请问如果代码这样写的话,输入13.1416it
要怎么判断%d和%f会输出什么??

如果没有限制%f的大小的话,是不是默认只会输出小数点后面的

#include <stdio.h>
int main(void)
{
int i;
float f;
char ch = {0};
scanf("%d%f%2s", &i, &f, ch);
printf("%d\n,%f\n,%s\n", i, f, ch);
return 0;
}

这里的整形限定了长度为3,所以只要0013.1416it,就能确保i是1,f是3.1416,ch是it吗

#include <stdio.h>
int main(void)
{
int i;
float f;
char ch = {0};
scanf("%3d%f%2s", &i, &f, ch);
printf("%3d\n,%f\n,%s\n", i, f, ch);
return 0;
}

风车呼呼呼 发表于 2022-8-14 22:20:51

默认输出小数点后六位(末位四舍五入)。
对,取前3位赋给整型变量

1613551 发表于 2022-8-14 22:21:21

{:10_266:}不要问代码为什么要这样写,考试它就喜欢这样考我

1613551 发表于 2022-8-14 23:16:08

风车呼呼呼 发表于 2022-8-14 22:20
默认输出小数点后六位(末位四舍五入)。
对,取前3位赋给整型变量

大神,好久没见你了

风车呼呼呼 发表于 2022-8-16 17:42:54

1613551 发表于 2022-8-14 23:16
大神,好久没见你了

{:10_329:}确实,有空逛论坛的精力少了
页: [1]
查看完整版本: 关于scanf函数的问题