C语言:对输入的十个数进行从小到大排序 编程序 c语言:实现对任意十个数进来从小到大排序

作者&投稿:武委 (若有异议请与网页底部的电邮联系)

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

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

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

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



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

【一】冒泡法

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

如果有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:
");  
    for (i = 0; i < 10; i++)  
        scanf("%d", &a[i]);  
    printf("
");  
    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:
");  
    for (i = 0; i < 10; i++)  
        printf("%d ", a[i]);  
    printf("
");  
    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:
");  
    for (i = 0; i < 10; i++)  
        scanf("%d", &a[i]);  
    printf("
");  
    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:
");  
    for (i = 0; i < 10; i++)  
        printf("%d ", a[i]);  
    printf("
");  
    system("pause");  
    return 0;  
}


排序方法太多,就用其中最简单的一个冒泡法吧
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;

}

#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]);
}

你可以写一个简单的链表
线性物理结构对这方面处理比较简单

C语言程序设计: 从用户输入10个整数,对其按照从小到大的顺序排序,并输出结果。~

//要求任意输入10个数,然后按从小到大顺序输出
#include<stdio.h>
int main()
{
int a[10];
int i,j;
int temp;
printf("请输入10个整数:");
for(i=0;i<10;i++)
{
scanf("%d",&a<i>);
}
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排列后顺序为:");
for(i=0;i<10;i++)
{
printf("%d",a<i>);
}
printf("
");
return 0;
}

扩展资料:①printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。
格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。
要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。
②printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。
printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。
其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

只给截图,手动敲一遍总比复制粘贴好


C语言中,从键盘输入10个数,从小到大排列输出,怎么写啊,最好注明语句的...
答:k[j]; k[j] = k[j+1]; k[j+1] = temp; } } } }int main(){ int i,a[10] = {0}; printf("请输入10个数字\n"); for(i = 0; i<10;

功能是从键盘输入 10 个整数,要求用插入排序方法将它们 按从小到大的...
答:include <stdio.h> int main(){ int a[11];//数组长度为11 int n = 10, i, j, t;int x;printf("请输入10个整数:\n");for (i = 0; i < 10; i++)scanf("%d", &a[i]);for (i = 0; i < 10; i++)//用冒泡法将输入的十个数排列好 */ for (j = 0; j < 9 ...

C语言问题:从键盘输入十个整数,用选择排序法对输入的数据从小到大的顺序...
答:void SelectSort(int a[],int n){ int i,j,temp,min;for(i=0;i<n-1;i++){ min=i;for(j=i+1;j<n;j++)//找到最小元素的位置 while(a[j]<a[min])min=j;if(min!=i){ temp=a[min];//元素的交换 a[min]=a[i];a[i]=temp;} } } void main(){ int a[10],i;pr...

C语言冒泡法排序:任意输入十个数排序(从小到大;从大到小)
答:从小到大:if(a[j]a[j+1])即 include<stdio.h> define N 10 void main(){ int i,j;float a[N],t;printf("排序前:\n");for(i=0;i<N;i++){ scanf("%d",&a[i]);} for(i=0;i<N;i++){ printf("%6.1f",a[i]);} printf("\n");for(i=0;i<N-1;i++){ for...

输入10个整数,分别赋给一个整形数组中的10个元素,要求对他们按由小...
答:终点前移一位,首轮范围为0~9 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])...

C语言选择法排序任意输入十个数:(从大到小;从小到大)
答:include <stdio.h> main(void){ int i,j,a[10],p=0,t=0,temp;printf("请输入原数组:\n");for(j=0;j<10;j++)scanf("%d",&a[j]);temp=a[0];for(j=0;j<9;j++){ t=j;temp=a[j];for(i=j+1;i<10;i++)if(temp>a[i]) //这是由小到大排序 如果是大到小则改...

如何用c语言编写一个程序,实现按从大到小的顺序排序输出10个数
答:用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:include<stdio.h> int main(){ 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...

由键盘输入10个数,由逗号分隔.对十个数从大到小排序并以逗号分隔输出...
答:由键盘输入10个数,由逗号分隔.对十个数从大到小排序并以逗号分隔输出.  我来答 首页 在问 全部问题 娱乐休闲 游戏 旅游 教育培训 金融财经 医疗健康 科技 家电数码 政策法规 文化历史 时尚美容 情感心理 汽车 生活 职业 母婴 三农 互联网 生产制造 其他 日报 日报精选...

C语言程序设计: 从用户输入10个整数,对其按照从小到大的顺序排序,并输...
答://要求任意输入10个数,然后按从小到大顺序输出 include<stdio.h> int main(){ int a[10];int i,j;int temp;printf("请输入10个整数:");for(i=0;i<10;i++){ scanf("%d",&a);} for(i=0;i<9;i++){ for(j=0;j<9-i;j++){ if(a[j]>a[j+1]){ temp=a[j];a[j]...

输入10个数 按从小到大排序 从小到大输出 c语言 用指针
答:include<stdio.h> include<conio.h> int main(){ int a[10];int *p;p =a;int i;int j;int temp;for(i =0;i<10;i++){ scanf("%d",p+i);} for(i=0;i<9;i++){ for(j=i+1;j<10;j++){ if(*(p+i) > *(p+j)){ temp = *(p+i);(p+i)=*(p+j);(p+j)...