将一个数组中的值逆序存放
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将一个数组中的值逆序存放相关的知识,希望对你有一定的参考价值。
将一个数组中的值逆序存放将一个数组的值逆序存放 原来8 6 5 4 1改为
1 4 5 6 8
C/C++语言可用循环解决,例如:
#include<stdio.h>int main()
int arr[5]=[8,6,5,4,1];
int arr1[5];
int i;
for(i=0;i<5;i+++)
arr1[i]=arr[4-i];//此处将第i个元素放到第4-i处,即第0号放到第4号,完成交换
//此时arr1即为逆序存放的数组
for(i=0;i<5;i+++)
printf("%d",arr1[i]);//打印输出
return 0;
python、Java或javascript等高级语言,可用内置函数reverse实现
//以下为JavaScript反转数组var arr=[8,6,5,4,1];
arr1=arr.reverse();//完成反转 参考技术A
那是因为你没有调用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;
参考技术B
这边提供一个C#的解法,其他的楼上已经写了。
public static void Main(string[] args)int[] a = 1, 2, 6, 5, 9 ;
ReverseArray(a);
foreach (var item in a)
Console.WriteLine(item);
Console.ReadKey();
private static void ReverseArray(int[] array)
int temp;
int count = array.Length;
for (int i = 0; i < count / 2; i++)
temp = array[count - 1 - i];
array[count - 1 - i] = array[i];
array[i] = temp;
参考技术C #include<iostream.h>
void main()
int a[6]=1,2,3,4,5,6,temp;
for(int i=0;i<=5;i++)
if(i!=5)
cout<<a[i]<<' ';
else
cout<<a[i]<<endl;
for(i=0;i<=2;i++)
temp=a[i];a[i]=a[5-i];a[5-i]=temp;
for(int j=0;j<=5;j++)
if(j!=5)
cout<<a[j]<<' ';
else
cout<<a[j]<<endl;
这才是逆序存放,你那只是逆序输出,存储顺序是没变的 参考技术D 你的基础上简单改了一下
#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;
将一个数组的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。填空
#include<stdio.h>
main()
int i,b[10];
for(i=0;________;i++)
scanf("_________",________);
for(i=9;i>-1;i--)
printf("%5d",__________);
printf("\n");
#include<stdio.h>
int main()
int a[5]=8,6,5,4,1,i,n=5,temp;
for(i=0;i<n/2;i++)
temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp;
for(i=0;i<n;i++)
printf("逆序后:\\n");
printf("%d\\t",a[i]);
return 0;
扩展资料:
数组使用规则:
1.可以只给部分元素赋初值。当 中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]=0,1,2,3,4;表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值;
2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]=1,1,1,1,1,1,1,1,1,1;而不能写为:static int a[10]=1;
3.如不给可初始化的数组赋初值,则全部元素均为0值;
4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]=1,2,3,4,5;可写为:static int a[]=1,2,3,4,5;动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
参考资料:
百度百科-数组
这个题应该是最简单的C语言输入输出,以前循环逻辑控制了,要想学得好,要多上机编写程序练习~~
#include<stdio.h>
main()
int i,b[10];
for(i=0;i<10;i++)
scanf("%d",&b[i]);
for(i=9;i>-1;i--)
printf("%5d",b[i]);
printf("\\n");
参考技术B main(){int i,a[5];
for(i=0;i<=4;i++)
a[i]={8,6,5,4,1};
for(i=4;i>=0;i--)
{printf("%d",a[i]);}
printf("\n");
return 0;
} 参考技术C #include<stdio.h>
main()
int i,b[10];
for(i=0;i<10;i++)
scanf("%d ", &b[i]);
for(i=9;i>-1;i--)
printf("%5d", b[i]);
printf("\n");追问
5、输入年月日,输出这一天是本年度的第几天。
main()
int find(int x,int y,int z)
int i,t,s,days=0;
if(x%4==0) t=1;
else t=0;
for(i=1;i<y;i++)
if(i==2) s=2-t;
else s=0;
days=days+30+i%2-s;
days=days+z;
return days;
void main()
int year,month,date,day;
scanf("%d%d%d",&year,&month,&date);
day=find(year,month,date);
printf("这一天是本年的第%d 天\n",day);
以上是关于将一个数组中的值逆序存放的主要内容,如果未能解决你的问题,请参考以下文章
将一个数组中的值按逆序重新存放:建立Map()函数实现N个整数按相反顺序存放,函数的形参是数组
将一个数组中的值按逆序重新存放。例如8,6,5,4,1要求改为1,4,5,6,8.