C语言大神快来帮忙,问题如下。
将一个数组中的元素逆序重新排列。数组中的元素用赋初值的方法在程序中给出。提示:如有一数组:134|568,将数组从中间一分为二的看待,将1和8交换,3和6交换,4和5交换...
将一个数组中的元素逆序重新排列。数组中的元素用赋初值的方法在程序中给出。
提示:如有一数组: 1 3 4 | 5 6 8,将数组从中间一分为二的看待,将1和8交换,3和6交换,4和5交换。交换后的数组就是一个逆序数组。运行时,分别测试数组长度为偶数,数组长度为奇数两种情况。我的编程是
#include <stdio.h>
#define N 9
void main()
{
int arr[N],i,j,t;
for(i=0;i<N;i++) {scanf("%d",&arr[i]);}
for(i=0;i<N/2;i++)
{
j=N-1-i;
arr[i]=t;
arr[i]=arr[j];
arr[j]=t;
}
printf("\n");
for(i=0;i<N;i++){printf("%d,",arr[i]);}
}
为啥不对啊???求请教。。。 展开
提示:如有一数组: 1 3 4 | 5 6 8,将数组从中间一分为二的看待,将1和8交换,3和6交换,4和5交换。交换后的数组就是一个逆序数组。运行时,分别测试数组长度为偶数,数组长度为奇数两种情况。我的编程是
#include <stdio.h>
#define N 9
void main()
{
int arr[N],i,j,t;
for(i=0;i<N;i++) {scanf("%d",&arr[i]);}
for(i=0;i<N/2;i++)
{
j=N-1-i;
arr[i]=t;
arr[i]=arr[j];
arr[j]=t;
}
printf("\n");
for(i=0;i<N;i++){printf("%d,",arr[i]);}
}
为啥不对啊???求请教。。。 展开
1个回答
展开全部
你的程序在数组交换值时,arr[i]=t;写错了,应该是t=arr[i];
完整的程序如下:(改动的地方见注释)
include <stdio.h>
#define N 9
void main()
{
int arr[N],i,j,t;
for(i=0;i<N;i++) {scanf("%d",&arr[i]);}
for(i=0;i<N/2;i++)
{
j=N-1-i;
t=arr[i];//这里改一下
arr[i]=arr[j];
arr[j]=t;
}
printf("\n");
for(i=0;i<N;i++){printf("%d,",arr[i]);}
}
更多追问追答
追问
您好,请问那个define N 9是什么意思呢?这里我有点不懂。。
追答
定义一个等于9的常量N,意思就是说N是不变的常量,其值为9
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询