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

来源:百度知道 编辑:UC知道 时间:2024/05/06 04:03:07
一个数组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;
}
编译通过

什么意思 ?
temp=a[5];
a[5]=a[0];
a[0]=temp;不行吗?或者不是这个意思.

这个问题简单啊!
int temp;
for(i=0;i<5;i++)
{if(i=