C语言实现将一个数组中的值逆序存放并输出

#include<stdio.h>voidfun(intarr[],intn);#defineN40intmain(){intarr[40],n,i;printf("Th... #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]);
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;
}
}
}
可以帮我看一哪里错了吗?程序是可以运行的 但是并没有实现逆序
谢谢大神爸爸!
展开
 我来答
风25信子
2016-05-13
知道答主
回答量:19
采纳率:0%
帮助的人:4.3万
展开全部
你的基础上简单改了一下
#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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wchyumo2011
推荐于2017-12-15 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2860万
展开全部

那是因为你没有调用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;
}
}
}
更多追问追答
追问
请问在你加的那一行语句上面我写的“void fun(int arr[],int n);"这样不算是函数的调用吗?
因为我学的比较差也不是很懂。。。。
追答
那个是函数的声明,不是调用,函数的声明和定义的头部是一样的,只不过没有函数体的内容。调用的时候,传入约定的参数就可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式