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;
}
}
}
可以帮我看一哪里错了吗?程序是可以运行的 但是并没有实现逆序
谢谢大神爸爸! 展开
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;
}
}
}
可以帮我看一哪里错了吗?程序是可以运行的 但是并没有实现逆序
谢谢大神爸爸! 展开
展开全部
你的基础上简单改了一下
#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;
}
}
#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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那是因为你没有调用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);"这样不算是函数的调用吗?
因为我学的比较差也不是很懂。。。。
追答
那个是函数的声明,不是调用,函数的声明和定义的头部是一样的,只不过没有函数体的内容。调用的时候,传入约定的参数就可以了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询