C语言实现将一个数组中的值逆序存放并输出
发布网友
发布时间:2022-04-29 09:46
我来回答
共2个回答
热心网友
时间:2022-06-25 17:01
你的基础上简单改了一下
#include<stdio.h>
void fun(int arr[],int n);
#define N 40
int main()
{
int arr[40],n,i;
printf("The total numbers are:");
scanf("%d",&n);
printf("Please input the numbers:");
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
//getchar();
}
fun(arr,n);
//printf("%d",arr[0]);
printf("The sorted numbers are:");
for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
void fun(int arr[],int n)
{
int x,temp;
for(x=0;x<=(n-1)/2;x++)
{
temp=arr[n-1-x];
arr[n-1-x]=arr[x];
arr[x]=temp;
}
}
热心网友
时间:2022-06-25 17:02
那是因为你没有调用fun函数,输出之前调用一次就好了,你的主函数里面只声明了,没调用
#include<stdio.h>
void fun(int arr[],int n);
#define N 40
int main()
{
int arr[40],n,i;
printf("The total numbers are:");
scanf("%d",&n);
printf("Please input the numbers:");
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
getchar();
}
void fun(int arr[],int n);
//printf("%d",arr[0]);
fun(arr, n);////////////////////
printf("The sorted numbers are:");
for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
void fun(int arr[],int n)
{
int x,temp,m=n-1;
if(n%2==0)
{
for(x=0;x<=(m-1)/2;x++)
{
temp=arr[m-x];
arr[m-x]=arr[x];
arr[x]=temp;
}
}
else
{
for(x=0;x<=(m-2)/2;x++)
{
temp=arr[m-x];
arr[m-x]=arr[n];
arr[x]=temp;
}
}
}