求大神帮忙看下,实在是想不出来哪里错了 ,感觉一切正常
#include<stdio.h>int f=1;
int main()
{
int wl( int *c,int temp);
int a,b;
for(b=0;b<80;b++)
{
scanf("%d",&a);
f++;
if(a=='.')
break;
}
wl(a,10);
}
int wl( int *c,int temp)
{
int d;
for(d=0;d<f/2;d++)
{
temp=c;
c=c;
c=temp;
}
for(d=0;d<f;d++)
printf("%d",c);
return 0;
}
我输入的是4个,输出的会有这么多的随机数,
求大神帮忙解决一下 ,
这个程序是输入的整形数字反向输出! 老实说还没理解你的题意 参数f没有传到函数里面去吧! 本帖最后由 百里狂生 于 2018-12-6 22:46 编辑
scanf("%d",&a); 当输入非整型数据时(非%d),scanf无法读取该字符,字符留在键盘缓存区,造成一直循环下去。
可以用scanf的返回值判断输入数据格式是否正确。
scanf 返回读取到的数据个数
#include<stdio.h>
int f = 0; //记录读取数据个数
int main()
{
int wl(int *c);
int a, b = 0;
while(scanf("%d", &a) == 1) //若没有读取到数据,scanf返回值为0
{
f++;
b++;
}
wl(a);
}
int wl(int *c)
{
int d,temp;
for (d = 0; d<f / 2; d++)
{
temp = c;
c = c;
c = temp;
}
for (d = 0; d<f; d++)
printf("%d\t", c);
return 0;
}
页:
[1]