|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
当时完整的代码如下 现在把遇见问题的一段单独拿出来看
for(s=0;s<10;s++)
#include<stdio.h> scanf("%d",&x[s]);
void change(int *a,int n) 问题是我想让输入一个数后按回车时光标不会到下一行
{ 例如 输入10个数:1234567890
int *p,m,*i,*j,t; 而不是 输入10个数:1
m=(n-1)/2; 2......
i=a; 所以我把代码改了下 就是scanf("%d\n"&x[s]);
j=a-1+n; 这时候 就出现了这样的情况
p=a+m; 输入10个数:12
for(;i<=p;i++,j--){ 3
t=*i; 4.....
*i=*j; 想知道这是为什么,还有如果我想实现原来的目的应该怎么做呢?
*j=t;
}
}
int main()
{
int x[10],s;
printf("输入10个数:");
for(s=0;s<10;s++){
scanf("%d",&x[s]);
}
change(x,10);
for(s=0;s<10;s++)
printf("%d",x[s]);
}
本帖最后由 BngThea 于 2017-10-12 15:10 编辑
scanf函数会在屏幕打印时换行,所以可以改为
- for(s=0;s<10;s++)
- {
- scanf("%d",&x[s]);
- getchar();
- }
复制代码
但是即便如此,也不能实现连续输入1234567890,因为没有分隔符,系统认为它是一个数,而不是分开看,所以每个数字之间还是需要空格或tab来分隔
如果你一定要达到目的,只能将数组改为char类型,然后用atoi函数将其转换为int也行
|
|