c程中scanf老是出错
一个关于在for循环里用scanf()输入出错的问题?
include <stdio.h> main(){ int i;char a[4];for(i = 0;i < 4; i++){ scanf("%c",&(a[i]));fflush(stdin);\/*原因,你在输入的时候,在输入流中有两个字符(假设你是输入 a然后回车),那么输入流里有一个a还有一个回车,在读入a后回车不 删除,所以 这里用 fflush(stdin)清除流中...
C语言程序能否多次使用scanf
可以呀,只是要按你的格式去输入就行了,如scanf(%d,%d,&a,&b),则你输入时(如输入1和2),则要输入 “1,2”如果是scanf(a=%d,b=%d,&a,&b),则要输入“a=1,b=2"scanf(%d%d,&a,&b)如果中间没有空格,则1和2之间可以有任意多个空格,因为scanf不会输入空格,但是scanf(%d %d,...
求大神解释下这个程序为什么有两个scanf语句,但是只用输入一次?_百度...
你输入了字符之后,要回车程序才继续,第二个scanf读入的是回车,这样可以防止下次scanf的效果让人出乎意料。
我用C语言scanf输入2个数字是怎么只能收到一个
代码和输入格式有误。1、scanf("%d,%d",&a,&b);按照这个格式,输入数据的时候,应该加上逗号。比如说想输入22 33 就应该 22,33。2、也可以像这样scanf("%d %d",&a,&b);中间用空格隔开,那样就可以直接输入 22 33了。scanf 的功能用一句话来概括就是“通过键盘给程序中的变量赋值”。该...
C语言 以下程序SCANF输出%f格式的为什么会出错?
参见: http:\/\/msdn2.microsoft.com\/en-us\/library\/k1x26e0x(VS.71).aspx 怀疑这是编译器的bug - 我用的编译器是VC自带的cl 14.00.50727.42 因为编译器没有识别出来有浮点操作, 而浮点相关库是lazy loaded, 于是浮点相关的库没有被链接进来.解决方法很简单: 随便弄个浮点数, 赋值一次就好了 ...
关于c的程序
在C程序中,当通过scanf读取输入时,务必确保正确引用变量。例如,原代码中的错误应该修正为:include int main(void){ int a, b;printf("请输入两个整数:");scanf("%d", &a); \/\/ 修正:在a前面添加"&"以正确传递变量地址 printf("整数B:");scanf("%d", &b); \/\/ 同样修正:在b前面...
C语言问题,为什么输入字母就无限循环,数字没事,怎么改,谢谢
呃,他们回答都没回答到点上…之所以输入字母就会无限循环,是因为scanf函数的问题.while(1){ do { printf("输入转换的原进制数:");scanf("%ld",&b);}while(b!=2&&b!=8&&b!=16);在上面这段代码中,当输入的是字母时,由于scanf里的格式要求输入的是%ld,而你输入的不是这格式,所以scanf函数就...
C语言中scanf是什么意思啊?
C语言中scanf是标准库函数,主要用来接收用户输入的数据。scanf与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。函数格式:int scanf(char *format, args, ...);功 能...
...这个程序是输出三个数中的最大数,但结果总是不对
if(b>=a&&b>=c) max=b;if(c>=a&&c>=b) max=c;你的代码可以改成 include <stdio.h> void main(){ int a,b,c,max;scanf("%d %d %d",&a,&b,&c);if(a<=b){ temp=a;a=b;b=temp;} if(a<=c){ temp=a;a=c;c=temp;} printf("%d\\n",a);} ,上面的代码中交换...
C中scanf是什么意思?
scanf()函数是所有C语言学习者在学习C语言过程中所遇到的第二个函数(第一个函数是printf(),Brian W.Kerninghan & Dennis M.Ritchie的“hello,world”程序基本上是所有的C语言学习者第一个范例),所以scanf()函数应当是C学习者能熟练运用的一个函数,但有很多初学者对此函数不能很好的运用,在实际编程中错误使用s...
富川瑶族自治县金芪回答: 将main()函数的返回值改为int类型,并加上return 0;语句,具体修改如下:********************** 修改如下(注意,由于scanf()中的三个%d是以逗号分隔的,所以输入整数时也要用逗号分隔):#include<stdio.h> int main(void)/*注意这里*/ ...
昌峡13469708477问: c语言中用scanf函数先输入字符串,后输入数值.输出时会出现错误的数值,怎么解决 - ?
富川瑶族自治县金芪回答: #include<stdio.h> int main() { char str[50]; int a; scanf("%s%d",str,&a,&a); printf("str=%s\n",str); printf("a=%d\n",a); return 0; } 你下面的代码我给你改了一下,把%s%d之间的空格去掉了,然后加了一个&a,通过两次赋值,消除缓冲中回车的干扰
昌峡13469708477问: C语言编程序时出现scanf函数输入的数据出错,怎么破. - ?
富川瑶族自治县金芪回答: 因为你的scanf函数已经规定了输入的格式,你的输入有问题,你应该输入a=9,b=8,c=7
昌峡13469708477问: 简单C语言scanf输入问题 - ?
富川瑶族自治县金芪回答: (1)我初学c语言时也碰到了跟你一样的问题, 那是因为scanf函数的一个天生的毛病, 你在调用scanf()时,输入一个数字,并按下回车, 你的本意是只想让scanf接受一个数字, 但同时scanf()把那个回车也送入了缓冲区中, 你可以这样改...
昌峡13469708477问: C语言的scanf怎么没执行? - ?
富川瑶族自治县金芪回答: 这种情况通常发生在前面已经有了输入语句,而当前的scanf是在接收字符(即用%c控制输入)时.由于前面的输入语句(不一定是scanf)把最后输入的'\n'遗留在了输入缓冲区,而当前的scanf("%c",...);又会把'\n'当一个字符接收,又由于...
昌峡13469708477问: C语言中关于字符数组输入,scanf为什么没执行 - ?
富川瑶族自治县金芪回答: 这个算是比较典型的错误的 用scanf来接收字符串,最后的回车符不会被接收,留在缓冲区,下一次再用scanf时,从回车符开始接收,所以ch接收到的字符是回车符,解决方法是,在scanf("%c",&ch);上面加上一条语句:getchar();修改后的代码类似如下:......printf("请输入要查找的字符:"); getchar(); //加上这条语句,消耗缓冲区的回车符. scanf("%c",&ch);......
昌峡13469708477问: C语言 以下程序SCANF输出%f格式的为什么会出错? - ?
富川瑶族自治县金芪回答: 错了很多,兄弟!!!给二维数组初始化不是那样的; for(i=0;i<5;i++) { for(j=0;j<5;j++) scanf("%f",&a[i][j]); } 我这样还勉强算对!!!!**************************** 我现在很无奈,就问一句话好了,你为什么要加循环呢,那是什么意思,别告诉我是控制数组的输入.....迷糊
昌峡13469708477问: C语言用scanf输入字符输出确实错误的... - ?
富川瑶族自治县金芪回答: scanf_s("%c%c%c%c%c", &c1, &c2, &c3, &c4, &c5,5);//后面加上元素的个数就好了.
昌峡13469708477问: c语言中为什么变量定义在scanf后面会报错 - ?
富川瑶族自治县金芪回答: 这是由于编译器对C语言标准的支持情况造成的.估计是你所用的编译器是按照C89标准执行的.C89规定, 在C语言中, 变量的声明必须位于任何可执行语句之前;不过在C99以及C++中, 你可以在任何地方声明变量; 解决方案:1. 将文件的后缀名改为.cpp, 编译器将会以C++的方式编译他(注意: 不推荐这种方式);2. 抛弃老版本的编译器, 换成新版;3. 老老实实将变量全部声明在所有可执行语言的前面.
昌峡13469708477问: C语言中,为什么函数scanf没有语法错误但报出运行时非法内存访问错误?是由哪个参数引起的? - ?
富川瑶族自治县金芪回答: 可能有输入字符串超出数组长度.