too many arguments to function 'getchar’和怎样输入一串不知长度的数字和 assignment makes pointer from integer without a cast
too many arguments to function ‘getchar’
今天碰到一道不严谨的题目,要求输入一串不知长度的数字
题目如下:
2.将n个数从小到大排列,要求在输入一个数,把它插到数列中,使数列仍然有序,并输
出新的数列。
input:1 2 7 5 9 0
output:0 1 2 5 7 9
insert:3
output:0 1 2 3 5 7 9
我第一次想用getchar()每读一个字符判断字符是否为空或‘\n’
代码如下:
for( ; ; )
{… …
char a;
getchar(a);
… …}
结果报错:too many arguments to function ‘getchar’
原来是getchar()函数用法错误,应改为
a=getchar();
怎样输入一串不知长度的数字
第二次我直接用了gets()函数,比较方便
代码如下:
gets(l);
for(int q = 0;q < strlen(l);q++) {
if (l[q] == ’ ') {
}
else {
a[i] = l[q] - ‘0’;
i++;
}
}
assignment makes pointer from integer without a cast
后来又遇到这个警告:assignment makes pointer from integer without a cast
1.可能是调用函数时没有原型声明
需要添加头文件
2.可能是数组下表漏了
需要补回下标
3.可能是函数返回值和被赋值变量类型不统一
可以用制类型装换
最后建议不要用一些不熟的函数,不然很可能报一些很奇怪的错