编写程序将一个数组中的数按逆序重新存放并输出(程序中数组的元素个数自定,逆序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写程序将一个数组中的数按逆序重新存放并输出(程序中数组的元素个数自定,逆序相关的知识,希望对你有一定的参考价值。

编写程序将一个数组中的数按逆序重新存放并输出(程序中数组的元素个数自定,逆序时不使用辅助数组)。如:输入5个数3、9、7、6、1,逆序存放后数组是1、6、7、9、3。

void invert(int a[ ],int n)

int temp;// 临时存储单元

// 以n/2为对称点,进行对称位置交换。

for(int i=0;i<n/2;i++)

// a[i]存放在临时存储单元

temp=a[i];

// 将i的对称的数据存到a[i]

a[i]=a[n-1-i];

// 将原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,1),(4,3),(4,1),(3,1),因此该序列的逆序数为 4。

Visual Basic 6.0 编写的示例使用的就是直接计数的方法,函数 NiXushu 返回一个字符串的逆序数。

Private Function NiXuShu(ByVal l As String) As Long '逆序数计算

Dim i As Integer, j As Integer, c As Long

Dim n() As Integer

ReDim n(Len(l))

For i = 1 To Len(l)

n(i) = Val(Mid(l, i, 1))

For j = 1 To i - 1

If n(i) < n(j) Then

c = c + 1

End If

Next j

Next i

NiXuShu = c

End Function

以上内容参考:百度百科-逆序数

参考技术A void invert(int a[ ],int n)
int temp;// 临时存储单元
// 以n/2为对称点,进行对称位置交换。
for(int i=0;i<n/2;i++)
// a[i]存放在临时存储单元
temp=a[i];
// 将i的对称的数据存到a[i]
a[i]=a[n-1-i];
// 将原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]);





上面就是你要的函数,希望你能看懂。
参考技术B javascript 的..这只是个方法 ...

var s=new Array("1","2","3","4");
var d="";
for(i=s.length-1;i>=0;i--)
d+=s[i];

alert(d)
参考技术C use strict;
use warnings;
print "how much number you want in put:";
my $tal=<>;
chomp($tal);
my @num;
for (my $i=0;$i<$tal;$i++)
$num[$i]=<>;
chomp $num[$i];

@num=reverse@num;
for(@num)
print "$_\n"


perl脚本这样搞定
参考技术D 你没明确给出要求用什么语言编程。

[PTA]练习7-3 将数组中的数逆序存放

[PTA]练习7-3 将数组中的数逆序存放

本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。

输入格式:
输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。

输出格式:
在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。

输入样例:
4
10 8 1 2
输出样例:
2 1 8 10

  • 提交结果:

在这里插入图片描述

  • 源码:
#include<stdio.h>
int main(void)
{
	int array[10];
	int n;

	scanf("%d", &n);

	for (int i = 0; i < n; i++)   //读入数组
	{
		scanf("%d", &array[i]);
	}

	for (int j = 0; j < n / 2; j++)   //将数组元素首尾依次交换,实现逆序排放
	{
		int temp;
		temp = array[j];
		array[j] = array[n - (j + 1)];   //array[0]<->array[n-1],array[1]<->array[n-2]
		array[n - (j + 1)] = temp;
	}

	for (int k = 0; k < n; k++)   //输出逆序存放后的字符串
	{
		printf("%d", array[k]);

		if (k != n - 1)   //相邻数字中间用一个空格分开,行末不得有多余空格。
		{
			printf(" ");
		}
	}

	return 0;
}

以上是关于编写程序将一个数组中的数按逆序重新存放并输出(程序中数组的元素个数自定,逆序的主要内容,如果未能解决你的问题,请参考以下文章

编写一个C语言程序:将一个数组中的值按逆序重新存放

练习7-3 将数组中的数逆序存放(20 分)

练习7-3 将数组中的数逆序存放 (20分)

[PTA]练习7-3 将数组中的数逆序存放

[PTA]实验7-1-3 将数组中的数逆序存放

python 怎么将一个数组逆序输出?