matlab 输入一组数,逆序输出

如题所述

有固定的函数的

flipud(u)实现矩阵的上下翻转

fliplr(p)实现矩阵的左右翻转

#include <stdio.h>

#define N 10

void main()

{

int s[N];

int i,j,t;

printf("输入%d个整数\n",N);

for(int i=0;i<N;i++)

scanf("%d",&s[i]);

for(i=0,j=N-1;i<j;i++,j--)

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

printf("逆序存入后输出为:\n");

for(shuj=0;<N;j++)

printf("%d ",s[j]);

}

扩展资料:

计算一个排列的逆序数的直接方法是逐个枚举逆序,同时统计个数。例如在序列 { 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

参考资料来源:百度百科-逆序数

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-05
有固定的函数的
flipud(u)实现矩阵的上下翻转
fliplr(p)实现矩阵的左右翻转追问

要用递归方法

追答

必须要用Matlab?c语言很方便的,可以找个递归C语言程序,做成M-file,直接执行

追问

必须是用Matlab啊,马上交作业

追答

对啊,你做一个function文件,然后在主程序里调用这个function即m-file

追问

不是很懂

追答

matlab2010用过没?在function文件里写入C语言的递归程序,保存为daoxu,类型m-file,然后直接就是x=[ ];y=daoxu[x]

追问

还没学

追答

额,直接写实在是笨拙,我早给忘了

第2个回答  2014-05-05
fliplr(a) 翻转
>> a=1:5
a =
1 2 3 4 5
>> fliplr(a)
ans =
5 4 3 2 1追问

要用递归方法

本回答被网友采纳
相似回答