你说对了!scanf("%d",&a[i]);在接收整数时不接收'\n',所以a[i]!='\n'这个判断永远为“真”。
所以第一次那个\n是被%d后的\n收走了;第二次输入的1由于已经没有对应的变量接收了,所以还留在输入缓冲区里。第二次输入的\n被当作输入结束命令启动对应变量接收数据。所以最后a得到的是第一次输入的数据。你可以第二次输入与第一次不同的数,现输出来验证。所以正确的写法应该是scanf("%d",&...
很简单 scanf("%d,&i");删除的时候,输入信息语句不对(双引号错误)!改为scanf("%d",&i);另外建议:define ok 0 if(!i)print_seqlist(a); break;else printf("删除位置错误\n");想对你的来说,i本来就有值了不执行delete,也不会运行 printf("删除位置错误\n");...
多键盘获取四个整数值,分别赋给a,b,c,d这四个变量。要求赋值时每个值之间以逗号分开。
这是因为scanf()函数在不能接受空格 而这个函数又是以TAB键,回车符或空格作为结束符的 所以在输入aa bb时,分别被前两个字符数组所接受 但是从第三个字符数级开始是用gets()函数来接受字符串的 在用户按下第一个回车键后,回车键被储存内存缓冲区中,等待用户的接受 又由于在下一个输入函数是gets(...
你要知道scanf的输入后面的的地址,如果你输入的时候本身符号就表示地址的时候那不要&,否则就要& 举个例子:int a;char ch;scanf("%d",&a);scanf("%c",&ch);这里的a是一个整型数,不是地址符号就要& char str[10];scanf("%s",str);此时str是地址符号,表示字符串的首地址,因此不需要& ...
int i,a,b,c;i=scanf("%d%d%d",&a,&b,&c);如果输入1_@_100,则i=2;如果输入12_100_-1,则i=3;如果输入@_w_A,则i=0.本题的一个完整的c程序如下,已在win-tc和Dev-c++下调试通过。include "stdio.h"include "stdlib.h"include "conio.h"main(){ int a;printf("欢迎使用成绩...
错误的。 scanf("%d","%d",&a,&b),后一个"%d"是可以解析为某一个地址的,编译的时候编译器只是确保了地址数的存在,但是并不一定可用 当程序向
函数是有返回值的,它的返回值可以分成三种情况 1)正整数,表示正确输入参数的个数。例如执行 scanf("%d d",&a,&b);如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。2)0,表示用户的输入不匹配...
存在,怎么不存在,就是相当于,我输入4 5 6 7,于是a=4 b=2 c=7 第三个数直接被忽略 这个有什么用呢,一般是为了,忽略回车用的,比如我这样 int i=0;while(i==2){ scanf("%c", &c);i++;} 如果是这样那么,我输入e 按一个回车就不能输入了,为什么呢,因为它把回车当做字符了 这时...