c语言中一维数组的平移交换

给定一个一位数组 inta[10]={1,2,3,4,5,6,7,8,9,10} 请前m个元素和后面元素进行平移交换 。 不知道哪里出问题了, 求指点

#include <stdio.h>

int main(){
//1,2,3,4,5,6,7,8,9,10 输入4-> 5,6,7,8,9,10,1,2,3,4 
int a[10]={1,2,3,4,5,6,7,8,9},i,b[10],c=0,m;
scanf("%d",&m);
for(i=m;i<10;i++){
b[c++]=a[i];
}
for(i=0;i<m;i++){
b[c++]=a[i];
}

for(i=0;i<10;i++){
a[i]=b[i];
}
for(i=0;i<10;i++)
printf("%d\n",a[i]);

return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-26
代码没什么问题呀 你是不是 在 最后一句 的时候 崩溃了

就是 你的 第三个for完结后 这个时候 i=10
然后一个printf 访问a[i] 就是a[10] 而a数组只能 访问0-9所以出问题了

你是不是打算输出所有的数 那你得 学上面三个for一样
for(i = 0; i < 10 ;i++)
{
printf("%d/t",a[i]);
}
这样才行追问

谢谢大神们啊 ~ 好像瞬间明白了 虽然最佳没采纳你的 但是还是很感谢你

追答

不客气

相似回答