matlab如何将一个一维数组从大到小排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab如何将一个一维数组从大到小排序相关的知识,希望对你有一定的参考价值。

刚刚试了sort() 是从小到大 如何从大到小呢

matlab一维数组将数据从大到小排列使用矩阵排列,俗称“起泡法”,方法思想如下:

第一、用两个并列的for循环语句,在第二个for 语句中又嵌套了一个循环语句。第一个for语句用于输入10个元素的初值。第二个for语句用于排序。本程序的排序采用逐个比较的方法进行。

第二、在i次循环时,把第一个元素的下标i赋于p,而把该下标变量值a[i]赋于q。然后进入小循环,从a[i+1]起到最后一个元素止逐个与a[i]作比较,有比a[i]大者则将其下标送p,元素值送q。 一次循环结束后,p即为最大元素的下标,q则为该元素值。

第三若此时i≠p,说明p,q值均已不是进入小循环之前所赋之值,则交换a[i]和a[p]之值。 此时a[i]为已排序完毕的元素。输出该值之后转入下一次循环。对i+1以后各个元素排序。

在C语言中对数组排列也是可以的,代码如下:
include<stdio.h>
#include<stdlib.h>
main()

      int a[10],i,j,t;
      for(i=0;i<10;i++)
                       scanf("%d",&a[10]);
      for(i=0;i<9;i++)
      for(j=0;j<9-i;j++)
       
                         if(a[j]<a[j+1])
                         t=a[j];a[j]=a[j+1];a[j+1]=t;
       
      
      for(i=0;i<10;i++)
      printf("%d ",a[i]);
      getch();
      

参考技术A sort(A,'descend')本回答被提问者采纳

c++学到一维数组了怎么在cout里保留两位小数?

比如把11输出成11.00

一、c语言中可以使用printf函数

如:

float f=11;

double d=11;

printf("f=%.2f,d=%.2Lf\\n",f,d);

这在c++中依然可以使用。

二、如果非要使用cout,可以这样

1

#include <iomanip>

2

//设置输出为固定精度,两位小数

cout<<fixed<<setprecision(2);

下面是一个例子:

#include <iostream>

#include <iomanip>

using namespace std;

int main()

double d1=123.454999;

double d2=45678.66511111;

cout<<fixed<<setprecision(2);

cout<<d1<<","<<d2<<endl;

return 0;

参考技术A 您好,很高兴回答您的问题。
在c++中,保留小数位数的方法同c语言中是一样的。使用%.2f就可以实现。若还规定了输出数据的总长度,那么还要在小数点前给出具体数字。如要求总长度为5位,小数位为2位的话,那么输出格式为%5.2f即可。若输出的总长度超过了5,那么以实际为准,但是小数位只能是2位的。

以上是关于matlab如何将一个一维数组从大到小排序的主要内容,如果未能解决你的问题,请参考以下文章

编写一个sort函数,对一维数组的前n个元素从小到大排序

c++学到一维数组了怎么在cout里保留两位小数?

0-1背包使用一维dp数组时为何v要从大到小枚举

如何将数组中的数字从大到小排序?

从键盘输入5个整数,按照其值从大到小排序 C语言数组做

C语言实现简化版桶排序