c语言scanf的问题?

作者&投稿:照艳 (若有异议请与网页底部的电邮联系)
~
  1. 在scanf中,%f和%8f都表示输入float型数据,%f默认取小数点后6位有效数,%8f则限定只取输入数据的前8位(含小数点),多余的被留在输入缓冲区。即最小宽度为8位(最少占8格),小数不足的左边补空格。

  2. &: 为取地址运算符

  3. scanf(),其调用格式为:      scanf("<格式化字符串>",<地址表>);

如果只按你题目说将变量C赋值为283.19,直接用scanf("%f",&c);也是正确的。

此外,输出时可用 printf("%.2f
",c); 来控制显示小数点后两位。




求问一下关于c语言scanf函数的一些问题,就是说输入数据时,到底应该用...
1、scanf输入流的概念,当执行到scanf函数时,会检查输入流,如果为空,则要求用户输入。如果不为空,则根据scanf的格式化参数从输入流中读取 2、%d 用来输入一个整数类型,会跳过开始的空白字符(空格 tab 回车都算空白字符),一直扫描到第一个数字开始,然后开始往后扫描,当碰到空白字符或者非数字...

c语言scanf的问题?
scanf(),其调用格式为: scanf("<格式化字符串>",<地址表>);如果只按你题目说将变量C赋值为283.19,直接用scanf("%f",&c);也是正确的。此外,输出时可用 printf("%.2f\\n",c); 来控制显示小数点后两位。

问几个C语言scanf函数和printf函数问题?
第一个问题:因为读取数字时,遇到非数字字符就结束读取了,非数字字符就可以在下一次读取。所以,数字和字母之间可以不用空格隔开。读取字符的后面,如果要读取数字,空格不是必须要加的,只是看起来更清楚一点罢了(不加空格也是可以的)。第二个问题:在使用scanf()输入字母时,字母和字母之间不能有空...

C语言关于scanf函数的问题?
答:scanf()的功能是从键盘获取数据赋值给对应的变量,括号内包括输入控制符和输入参数两部分。从键盘输入的数据需要转化成输入控制符的格式数据,然后存入输入参数。scanf("%3d",&a);是通过十进制整数3指定输入的宽度,即字符数,超出部分不赋值,故题中只把123赋值给a。scanf("%3c",&ch);通常%3c...

关于c语言的scanf函数的逗号问题!!
对于scanf()函数,如果格式控制串里有逗号(或其他非格式符号),键盘输入时,必须严格按照控制串的内容键入,不能随意输入。如scanf("a=%d,b=%d",&a,&b);响应输入是a=xx,b=xx(xx是整形数)。scanf()函数还有一个特点较为常用,该函数会将白字符(空格、<Tab>、<Enter>)作为数据间的分隔符,...

c语言中scanf的%s的问题(回答好追加分)
scanf("%*6d%4d%2d%2d",&year,&month,&day);6d -- 跳过6个字符。4d%2d%2d -- 读4位整数,读2位整数,读2位整数。声明为char year[5], month[3],day[3]; 则可用%s char year[5], month[3],day[3];scanf("%*6d%4s%2s%2s",&year,&month,&day);printf("%s %s %s",year,...

c语言中的scanf是什么意思
scanf是C语言中常用的输入函数,用于从标准输入设备(通常是键盘)中获取输入值,并按格式化字符串中的要求进行解析和赋值。它的语法格式为scanf(“格式控制字符串”, &变量1, &变量2, ...,&变量n),其作用是将用户输入的值按照格式化字符串中定义的格式,依次赋值给后面的各个变量。例如,若要获取...

c语言中scanf是什么意思(scanf什么时候用c语言)
scanf是scanformat的缩写,意思是格式化扫描,也就是从键盘获得用户输入,和printf的功能正好相反。scanf什么时候用c语言 scanf的意思是把输入的值给送到地址,因此,如果参数已经是地址了,那么不需要&,否则需要用&取一下地址 scanf格式输入函数 函数作用:按照变量在内存的地址将变量值存进去。一般格式:...

c语言中scanf函数定义宽度的问题
这个问题问的好。你问题的第二种情况是说如果输入多个字符类型数据的情况。如果是这样,请注意,除非,如果scanf后面的格式是%c的,那么它只能吸收你输入的一个字符,后面的东西全部放在缓存区。也就是说,你再接上一个scanf( "%c", &c),它会继续吸收你前面没有吸收到的字符。如果下面语句段:sca...

C语言中关于scanf()函数分隔符问题?
scanf不指定分割符号时,默认以空格、回车、制表符(tab),作为分割符号,可间隔多个分割符号。至于你最后打印的c,那是换行符对应的ascii码,因为你最后输入的字符是回车。

13211573363: C语言 格式输入scanf函数 中的问题 -
晏冒舒林: scanf("%d%d%d" -- %d 表示按整型 输入一个数,%d%d%d 表示按整型 输入三个数. scanf("%d%d%d",&a,&b,&c); 后面的 三个参数 &a,&b,&c 表示把依次输入的三个数,按次序 存到 a的地址里,b的地址里,c的地址里.3<回车>4<回车>5<回车> -- 输入的第一个数是 3,第二个数是 4,第三个数是 5.输入数据 的分隔符 是 <回车> 键第一个数是 3,存到 a 第二个数是 4,存到 b 第三个数是 5, 存到 c

13211573363: C语言的scanf问题
晏冒舒林: 这是你的输入方式惹的祸.如果你这样输入就不会有问题了:3 7 8.5 71.82 A a↓ 原因很简单,回车也是一个字符,它被当做 %c 储存在c1里面了.而你加上空格之后,回车被忽略掉了——先读入一个空格,然后把下一个字符储存在ch里面. 这样类似的情况有很多,回车啊,NULL啊这些都是惹祸精. 有一个不错的方法建议你使用:在每一个scanf的下一行,多加一个指令,getchar();.这样,输入时的回车就被getchar();拿走了,就不会再出现储存不该储存的东西这种情况了.

13211573363: C语言中关于scanf的问题 -
晏冒舒林: #include"stdio.h" main() { int a; printf("%d",scanf("%d",&a)); // 这个很明显的告诉我们 scanf()返回的并非我们输入的数值,而返回的是输入了几个数字,这里只输入了一个数 所以返回值为1 如果改为 scanf("%d",&a); printf("%d",a); 则是把我们输入的值A存储在内存中,通过printf()语句显示出来 // }

13211573363: c语言中的scanf问题
晏冒舒林: a=87 b=6543.0000 因为第一个百分位宽是2位所把87赋给a 后面6543.0是浮点数赋给b #include"stdio.h" int main() { int a;//876543.0float b; scanf("%2d%f",&a,&b); printf("%f",b);getchar(); }你运行这个程序看一下结果

13211573363: 关于C语言中的scanf()的问题: -
晏冒舒林: 在输入时由于按了一个字符又按了一个回车键,而scanf是在循环中,则他在第一次接受了字符后,下一次就接受回车键,所以你会发现scanf总是在第二次循环,解决的方法就是在第二个scanf之前加上getcher();(如果你是在vc 6.0)编译器...

13211573363: C语言中用scanf输入时的问题 -
晏冒舒林: scanf在对于%s输入时,遇到空格或者回车,就停止对字符串的输入了. 也就是说,通过scanf你不会把空格或者字符串输入到字符串中的.

13211573363: 简单C语言scanf输入问题 -
晏冒舒林: (1)我初学c语言时也碰到了跟你一样的问题, 那是因为scanf函数的一个天生的毛病, 你在调用scanf()时,输入一个数字,并按下回车, 你的本意是只想让scanf接受一个数字, 但同时scanf()把那个回车也送入了缓冲区中, 你可以这样改...

13211573363: 有关C语言scanf的问题 -
晏冒舒林: 应该是:scanf("%d%c%d%c“,&a1,&c1,&a2,&c2);%d是要跳过空白符的,而%c是不跳过空白符的 空白符包括空格,横向制表符,换行符,回车符,纵向制表符和换页符.所以要使c1=x,c2=y,那么在x,y之前不应该出现任何空白符,而10和20之前就无所谓了 符合上面条件的只有D,所以正确答案应该是D

13211573363: 一个关于c语言scanf函数的问题 -
晏冒舒林: 由于输入流错误,scanf("%2d*%d",&x,&y); 当输入365*36是首先x获取36这个数据,然后要获得*字符但是流中不是该字符,因而输入流错误,后面的y数据的处理就依赖于编译器了,不同编译器的数据可能是不同的,没有必要考究从这个数据中获得什么有用信息.

13211573363: C语言scanf问题 -
晏冒舒林: /*解答者注意,这是竞赛题,它给出的输入就是实实在在的输入的内容,不要臆测,严格按照输入办事!!*/#include <stdio.h> int main(int argc, char* argv[]){ for(int t=0,c;scanf("%1slease input time(seconds):%d",&c,&t)==2;) printf("Output time is(h:m:s):%d:%02d:%02d\n",t/3600,t/60%60,t%60); return 0; }/*任务完成,向online judge提交吧,给分吧*//*当然最后一行要不要换行你自己处理吧,我这假设最后一行也换行的*/

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网