如何将一个数组的值按逆序重新存放于原数组中,并输出。例如:原来顺序为3,6,5,4,9改为9,4?

如题所述

第1个回答  2022-11-13
简单,对折交换。
比如数组a为下面的序列,数组长度为n=10:
1,2,3,4,5,6,7,8,9,10
写一个循环,i从0开始折半遍历到(n/2-1),此处为10/2-1=4,也就是i {0,4},然后交换a[i]和a[n-i-1].
过程如下,其中↹表示交换:
i=0,a[0] ↹ a[9]
i=1,a[1] ↹ a[8]
i=2,a[2] ↹ a[7]
i=3,a[3] ↹ a[6]
i=4,a[4] ↹ a[5]
如果数组元素个数为奇数,则n/2会丢弃小数,因此中间元素不会交换,所以不需要另外处理。这是最快的逆序算法。

如何将一个数组的值按逆序重新存放于原数组中,并输出。例如:原来顺序为...
简单,对折交换。比如数组a为下面的序列,数组长度为n=10:1,2,3,4,5,6,7,8,9,10 写一个循环,i从0开始折半遍历到(n\/2-1),此处为10\/2-1=4,也就是i {0,4},然后交换a[i]和a[n-i-1].过程如下,其中↹表示交换:i=0,a[0] ↹ a[9]i=1,a[1] &...

编写程序将一个数组中的数按逆序重新存放并输出(程序中数组的元素个数...
\/\/ 将原a[i]中的数据(即temp),存放到i的对称点a[n-1-i]a[n-1-i]=temp;} \/\/ 重新输出数组 for(int i=0;i<n;i++){ printf("%d\\t",a[i]);} } 直接计数 计算一个排列的逆序数的直接方法是逐个枚举逆序,同时统计个数。例如在序列 { 2, 4, 3, 1 } 中,逆序依次为 (2...

...中的值按逆序重新存放。如原来的顺序为4,1,3,5,9,2,1,到倒置后顺序...
public class HelloWorld {public static void main(String[] args) {int [] a = new int [] {4,1,3,5,9,2,1};int t;for(int i = 0; i < a.length \/ 2; i ++) { t = a[i]; a[i] = a[a.length - 1 - i]; a[a.length - 1 - i] = t;}for(int ...

c语言编程:将一个数组中的值按逆序重新存放,例如,原来顺序为8,6,5...
1、首先以一个数组变量和一个数组长度变量。2、接下来假设有一个数组交换的函数和一个输出的函数。3、接下来我们开始编写逆序交换。4、此时,我们开始swap交换函数。5、然后我们定义函数声明。6、然后再编写输出函数就可以了,全部代码如图。

用C语言:将一个数组中的值按逆序重新存放
\/*将数组中元素的前后位置互换*\/ { temp = a[i]; \/*元素位置互换的过程借助中间变量temp*\/ a[i] = a[4-i];a[4-i] = temp;} printf("Now array a:\\n");for (i = 0; i < 5; i++) \/*将转换后的数组再次输出*\/ printf("%d ", a[i]);} ...

将一个数组中的值按逆序重新存放.例如,原来的顺序为8,6,5,4,1.要求...
int main(){ int a[20]={1,0},i,n,j;printf("请输入数组元素的个数:");scanf("%d",&n);printf("请输入数组元素:\\n");for(i=0;i<n;i++)scanf("%d",&a);for(i=0;i<n\/2;i++)a=a[n-1-i];printf("逆序存放后的数组:\\n");for(i=0;i<n;i++)printf("%d",a)...

将一个数组的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为...
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;} ...

C++编程:将一个数组中的值按逆序重新存放,例如,原来顺序为:8,6,5,4...
这样写扩展性会更好,数组中的个数可以是任意的,只需修改arrSize 即可 include <iostream> using namespace std;int main(){ unsigned int i = 0, j = 0, t = 0;const unsigned int arrSize = 5;int array[arrSize];cout<<"enter the origil array:"<<endl;for(i = 0; i < ...

. 把一个数组中的值按逆序重新存放.如:原来顺序为8,6,5,4,1,要求改...
include <stdio.h>#define MAX 3int main(void){ int a[MAX],i,j,t; for(i=0;i<MAX;i++) scanf("%d",&a[i]); for(j=MAX-1,i=0;i<j;i++,j--){ t=a[i]; a[i]=a[j]; a[j]=t; } for(i=0;i<MAX;printf("%d\\t",a[i++])...

...存入a数组,要求逆序重新存放后再输出,即若原来输入的是12345,逆序...
include "stdio.h"int main(int argc,char *argv[]){int a[5],i,j,k;printf("Input 5 integers...\\n");for(i=0;i<5;scanf("%d",a+i++));for(i=0,j=4;i<j;i++,j--)k=a[i],a[i]=a[j],a[j]=k;for(i=0;i<5;printf("%d ",a[i++]));printf("...

相似回答
大家正在搜