任意输入十个数,按从小到大的顺序排列这十个数并输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了任意输入十个数,按从小到大的顺序排列这十个数并输出相关的知识,希望对你有一定的参考价值。
你是用什么程序做啊,我这里用C程序做的这个编程。注意的是我这里输入的是十个整数,如果输入其他类型的值整型格式要相应修改。如下:#include<stidio.h>void main() int i, j, min, temp, a[11]; printf (" enter data :\ n"); for ( i=1 ; i<= 10; i++) printf ("a[%d]=", i);</p><p> scanf("%d", &a[i]); /*输入10个数*/</p><p> printf("\n"); printf("The orginal numbers:\ n"); for (i =1;i<=10;i++) printf("%5d",a[i]); / *输出这10个数*/ printf("\n"); for (i=1;i<=9;i++) /*以下8行是对10个数排序* min=i;</p><p> for (j=i+1;j<=10;j++)</p><p> if (a[min]>a[j]) min=j;</p><p> temp=a[i]; /*以下3行将a[i+1] ~ a[10]中最小者与 a[i] 对换*/</p><p> a[i]=a[min];</p><p> a[min]=temp;</p><p> printf ("\n The sorted numbers:\n"); for (i=i; i<=10; i++) /*输出已排好序的10个数*/ printf ("%5d", a[i]); printf("\n");运行结果:enter data:a[1]=6↙a[2]=90↙a[3]=45↙a[4]=56↙a[5]=1↙a[6]=15↙a[7]=44↙a[8]=78↙a[9]=58↙a[10]=101↙The oringal numbers:6 90 45 56 1 15 44 78 58 101 The sorted numbers:1 2 15 44 45 46 58 78 90 101你在程序里随便输入数字再运行看看结果。好好的琢磨琢磨这里的数组设置和选择排序,注意理解原理,这类问题都能掌握的!祝你进步! 参考技术A main()int s[4],i,j,a;
printf("请输入4个整数(各数之间用空格隔开):");
for(i=0;i<4;i++)
scanf("%d",&s[i]);
for(i=0;i<4;i++)
for(j=i;j<4;j++)
if(s[j]<s[i])
a=s[j];
s[j]=s[i];
s[i]=a;
printf("\n");
for(i=0;i<4;i++)
printf("%d ",s[i]);
参考技术B 在网上查找冒泡排序,有源码。
next_permutation函数(全排列)
题目描述:有一个数n(1<n<10),写出1到n的全排列。
输入:第一行输入一个数n(0<n<10),表示有n组测试数据。后面的n行输入多组输入数据,每组输入数据都是一个整数x(0<x<10)
输出按特定顺序输出所有组合。
特定顺序:每一个组合中的值从小到大排列,组合之间按字典序排列。
输入:
2 2 3
输出:
12 21 123 132 213 231 312 321
#include<iostream> #include<algorithm> using namespace std; int a[15]; int main() { int n,x,i; cin>>n; ++n; while(--n) { cin>>x; for(i=0; i<x;++i) a[i]=i+1; for(i=0; i<x;++i) cout<<a[i]; cout<<endl; while(next_permutation(a,a+x)==1) { for(i=0; i<x;i++) cout<<a[i]; cout<<endl; } } return 0; }
函数next_permutation()是按照字典序产生排列的,并且是从数组中当前的字典序开始依次增大直至到最大字典序。
next_permutation(),可以遍历全排列,要包含头文件<algorithm>
与之完全相反的函数还有prev_permutation
基本格式:
int a[]; while(next_permutation(a,a+n))
{
}
以上是关于任意输入十个数,按从小到大的顺序排列这十个数并输出的主要内容,如果未能解决你的问题,请参考以下文章