C语言数组中元素排列问题

一个数组a中有5 7 4 8 9 1这几个元素,输出结果是这样的:
5 7 4 8 9 1
1 5 7 4 8 9
9 1 5 7 4 8
8 9 1 5 7 4
4 8 9 1 5 7
7 4 8 9 1 5

问题是怎样把数组a[5]的值放到a[0]中去,想不通,大家帮帮我!
一楼说的是两个下标对换,我要的是a[5]放到第一位,而a[0]的值向后移一位,最好就是只用数组和循环,不要用函数调用!

#include "stdio.h"
#define len 6
int *function(int *);
int main() {
int a[len]={5,7,4,8,9,1};
for(int i=0;i<len;i++) {
for(int j=0;j<len;j++)
printf("%2d",a[j]);
printf("\n");
function(a);
}
return 0;
}
int *function(int *arr) {
int temp;
int i=len-1;
for(temp=arr[i];i>0;i--)
arr[i]=arr[i-1];
arr[i]=temp;
return arr;
}

编译通过
为了应付不同的长度的数组我定义了len宏 默认为6

如果你只是要输出,用下面这段简单的程序就可以
#include "stdio.h"
#define len 6
int main() {
int a[len]={5,7,4,8,9,1};
for(int i=len;i>0;i--) {
for(int j=0;j<len;j++)
printf("%2d",a[(j+i)%len]);
printf("\n");
}
return 0;
}
编译通过
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-12-01
这个问题简单啊!
int temp;
for(i=0;i<5;i++)
{if(i=0)temp=a[i];
a[i]=a[i+1];
if(i=4)a[i]=temp;
}
用这个循环应该能解决楼主的问题吧!
第2个回答  2006-12-01
什么意思 ?
temp=a[5];
a[5]=a[0];
a[0]=temp;不行吗?或者不是这个意思.
第3个回答  2006-12-01
temp=a[5];
for(i=5;i>0;i--)
a[i]=a[i-1];
a[0]=temp;

是这个意思不?

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网