C语言(简单的)编写程序输入一维整形数组a[10],将其按由小到大排序后输出

如题所述

这个应该用起泡法排序算法。

#include<stdio.h>

int main(){

int a[10];int i,j,k;

printf("input 10 numbers:\n");

for(i=0;i<10;i++){//输入十个数,一次循环输入10次

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

printf("\n");//换行

for(j=0;j<9;j++)//从小到大换行经典方法四行

for(i=0;i<9;i++)

if(a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf(”the sorted numbers:\n”);

for(i=0;i<10;i++)

printf("%d",a[i]);

printf("\n");

}

}

结果演示:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-23
#include"stdio.h"
void main()
{
int i,j,t,a[10];
printf("please input string a[]:");
for(i=0;i<10;i++) //对a数组赋值
scanf("%d",&a[i]);
printf("jiao huang qian wei:\n"); //输出交换前的数组
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
for(i=0;i<10;i++) //用“冒泡法进行排序”
for(j=0;j<=i;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
printf("jiao huang hou wei:\n");
for(i=0;i<10;i++) //输出交换后的数组
printf("%3d",a[i]);
printf("\n");
}
希望这个程序可以帮助到您....88有不明白的地方可以问....本回答被网友采纳
第2个回答  2017-07-07
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <ctime>
#include <cstring>
#include <algorithm>
using namespace std;
int a[22];
int main()
    {
        int i;
        cout<<"输入10个整数"<<endl;
        for(i=0;i<10;i++)
            cin>>a[i];
        sort(a,a+10);
        for(i=0;i<10;i++)
            cout<<a[i]<<" ";
        return 0;
    }

思路:利用冒泡排序,重复地走访过要排序的数列,一次比较两个元素,将小的放到前面并输出。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

排序方法大致有如下几种:

冒泡排序(bubble sort) — O(n^2)

鸡尾酒排序(Cocktail sort,双向的冒泡排序) — O(n^2)

插入排序(insertion sort)— O(n^2)

桶排序(bucket sort)— O(n); 需要 O(k) 额外空间

计数排序(counting sort) — O(n+k); 需要 O(n+k) 额外空间

合并排序(merge sort)— O(nlog n); 需要 O(n) 额外空间

原地合并排序— O(n^2)

二叉排序树排序 (Binary tree sort) — O(nlog n)期望时间; O(n^2)最坏时间; 需要 O(n) 额外空间

鸽巢排序(Pigeonhole sort) — O(n+k); 需要 O(k) 额外空间

基数排序(radix sort)— O(n·k); 需要 O(n) 额外空间

Gnome 排序— O(n^2)

图书馆排序— O(nlog n) with high probability,需要 (1+ε)n额外空间

第3个回答  2017-08-04

‍以简单的冒泡排序为例:

#include"stdio.h"
void main()
{
  int i,j,t,a[10];
  printf("please input string a[]:");
    for(i=0;i<10;i++)              //对a数组赋值
       scanf("%d",&a[i]);
   printf("jiao huang qian wei:\n");     //输出交换前的数组
      for(i=0;i<10;i++)
   printf("%3d",a[i]);
  printf("\n");
for(i=0;i<10;i++)                     //用“冒泡法进行排序”
       for(j=0;j<=i;j++)
           if(a[i]<a[j])
         {t=a[i];a[i]=a[j];a[j]=t;}
       printf("jiao huang hou wei:\n");   
for(i=0;i<10;i++)                 //输出交换后的数组
printf("%3d",a[i]);
      printf("\n");
}

第4个回答  2014-05-23
#include"stdio.h"
void main(){
int a[10],i,j,temp; /*N为元素个数*/
for(i=0;i<N;i++){
printf("输入第%d个数:",i+1);
scanf("%d",&a[i]);
}
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
printf("排序后的:\n");
for(i=0;i<N;i++)
printf("%d\t",a[i]);
}
相似回答