C语言:对输入的十个数进行从小到大排序

如题所述

1、首先打开编辑软件,新建一个c程序空文件,引入标准库和主函数,定义一个QuickSort函数用来排序,下面首先编写排序函数的:

2、此处用到快速排序思想,通过一趟排序将要排序的数据分割成独立的两部分,即这里用i和j两个变量分割数据,然后一部分的所有数据都比另外一部分的所有数据都要小,接着对这两部分数据分别进行比较排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列:

3、接着编写主函数,主函数中定义一个数组,然后用scanf接受数组,用户输入10个数以后,会将数存在数组array中,然后调用上面处理排序的函数,函数的输入就是刚才输入的数,最后在把排序的结果输出即可:

4、最后编译运行,输入10个数,最后控制台输出了排序的结果,证明程序的逻辑是没有问题的。以上就是C语言输入10个数排序的演示:

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-07-12

以两种方法为例,分别是冒泡法和选择法。

【一】冒泡法

冒泡法的基本思路:每次将相邻的两个数相比较,将小的调到前头。

如果有n个数,则要进行n-1趟比较。在第一趟中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。

#include<stdio.h>  
#pragma warning(disable:4996)  
int main()  
{  
    int i, j, temp, a[10];  
    printf("Please enter ten numners:\n");  
    for (i = 0; i < 10; i++)  
        scanf("%d", &a[i]);  
    printf("\n");  
    for (j = 0; j < 9; j++)  
    {  
        for (i = 0; i < 9 - j; i++)  
        {  
            if (a[i]>a[i + 1])  
            {  
                temp = a[i];  
                a[i] = a[i + 1];  
                a[i + 1] = temp;  
            }  
        }  
    }  
    printf("The sorted numbers:\n");  
    for (i = 0; i < 10; i++)  
        printf("%d ", a[i]);  
    printf("\n");  
    system("pause");  
    return 0;  
}

【二】选择法

选择法的基本思路:将前边的数依次和后边的每个数比较,每次挑出最小的放在前面。

如果有n个数、一共用进行n-1轮比较a[1]~a[n]就已按从小到大的顺序存放了。

#include<stdio.h>  
#pragma warning(disable:4996)  
int main()  
{  
    int i, j, min, temp, a[10];  
    printf("Please enter ten numners:\n");  
    for (i = 0; i < 10; i++)  
        scanf("%d", &a[i]);  
    printf("\n");  
    for (i = 0; i < 9; i++)  
    {  
        min = i;  
        for (j = i + 1; j<10; j++)  
        {  
            if (a[min]>a[j])min = j;  
            {  
                temp = a[i];  
                a[i] = a[min];  
                a[min] = temp;  
            }  
        }  
    }  
    printf("The sorted numbers:\n");  
    for (i = 0; i < 10; i++)  
        printf("%d ", a[i]);  
    printf("\n");  
    system("pause");  
    return 0;  
}

第2个回答  2014-06-04
排序方法太多,就用其中最简单的一个冒泡法吧
include <stdio.h>

void bubble(int *a,int n) /*定义两个参数:数组首地址与数组大小*/
{
int i,j,temp;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j]) {
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}

int main()
{
int arr[10];

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

printf("请输入要排序的第%d个整数:\n",i+1);
scanf("%d",&arr[i]);

}
bubble(arr,10);

return 0;

}本回答被网友采纳
第3个回答  2014-06-04
#include<stdio.h>
main()
{
int a[10],i,j,t;
printf("Input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("before sorting:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("\nafter sorting:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
第4个回答  2017-06-25
你可以写一个简单的链表
线性物理结构对这方面处理比较简单

C语言如何输入十个数,按从大到小顺序排列!
int i,j,a[10],t;printf("请输入十个数:");for (i = 0; i < 10; i++)scanf("%d",&a[i]);for (i = 0; i < 10; i++){ for (j = i + 1; j < 10;j++) \/\/循环 if (a[i] < a[j]){ t = a[i];a[i] = a[j];a[j] = t;} } printf("从大到小...

c语言实现从键盘上输入10个数,并输出。
int i,j,a[10],t;printf("输入数");for (i = 0; i < 10; i++)scanf("%d",&a[i]);for (i = 0; i < 10; i++){ for (j = i + 1; j < 10;j++)if (a[i] < a[j]){ t = a[i];a[i] = a[j];a[j] = t;} } printf("从大到小");for (i = 0;...

C语言:采用冒泡排序方法,对10个数按由小到大的的顺序排序
int main(){ int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};\/\/排序 for(i=1;i<10;i++)\/\/外循环控制排序趟数,n个数排n-1趟 { for(j=0;j<10-1;j++)\/\/内循环每趟比较的次数,第j趟比较n-i次 { if(a[j]>a[j+1])\/\/相邻元素比较,逆序则交换 { t=a[j];a[j...

...整数进行从小到大排序,输出排序前和排序后的数的顺序。
int a[10];int b[10]={9,10,11,12,1,2,3,4,0,1};int c[10]={1,2,3,4,13,14,15,16,2,3};int i;printf("请输入待排序的10个数:");for(i=0;i<10;i++){ scanf("%d",&a[i]);} fun(a);printf("\\n排序后的数列如下:\\n");for(i=0;i<10;i++){ printf("...

C语言 从键盘输入10个整数,将这10个整数按从小到大的顺序输出。
1、打开软件进入页面,点击文件-新建-文件-C++ Source File。2、输入预处理命令和主函数:#include<stdio.h>\/*输入输出头文件*\/void main()\/*空类型:主函数*\/。3、定义变量和数组的数据输入10个数:int a[10],i,t;\/*定义变量和数组数据类型为整型*\/printf("输入10个整数:");\/*输出文字...

C语言问题:从键盘输入十个整数,用选择排序法对输入的数据从小到大的顺序...
int a[10],i;printf("please input 10 numbers:\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("The array is:\\n");for(i=0;i<10;i++)printf("%-4d",a[i]);SelectSort(a,10);printf("\\nAfter sort the array is:\\n");for(i=0;i<10;i++)printf("%-4d",a[...

C语言~十个数字从小到大怎么排列~从大到小呢~
用数组来存放十个数字,使用“冒泡排序”来实现排序。10个数字需进行9轮扫描,每次扫描时比较相邻的二个数,如它们不符合要求的大小关系,就交换它们的位置。第一轮扫描结束时,最大的数就“沉”到最后。于是第二的范围就少了一个数。再进行第二两栖型、第三轮,…——直到第9轮就完成了。最后输出...

...从用户输入10个整数,对其按照从小到大的顺序排序,并输出结果。_百度...
在C语言程序设计中,一个常见的任务是要求用户输入10个整数,然后按照从小到大的顺序进行排序并输出结果。以下是如何实现这个功能的代码片段:首先,我们需要包含头文件,以便使用标准输入输出函数。在主函数main()中,我们定义一个长度为10的整数数组a,并设置两个变量i和j来辅助排序过程,以及一个临时...

...从用户输入10个整数,对其按照从小到大的顺序排序,并输出结果。_百度...
include<stdio.h>int main(void){int arr[10];int i,j;for(i = 0;i < 10;i++){scanf(" %d",&arr[i]);}for(i = 0;i < 10;i++){int mini = i;int min = arr[i];int c;for(j=i;j < 10;j++){if(arr[j] < min){min = arr[j];mini = j;}}c = arr[i];...

...输入10个整数。用选择法或冒泡法将它们从小到大的顺序排序,并以此顺 ...
int s[10],t,i,j,x;printf("input 10 numbers:\\n");for(t=0;t<10;t++)scanf("%d",&s[t]);for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(s[j]>s[j+1]){t=s[j];s[j]=s[j+1];s[j+1]=t;} printf("the result is:\\n ");for(j=0;j<10;j++)printf("%d...

相似回答