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

作者&投稿:郦健 (若有异议请与网页底部的电邮联系)
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("<格式化字符串>",<参量表>)。
其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

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


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个字符按由大到小顺序排列
include<stdio.h> int main(void){ char a[11];int i,j;int max;int t;printf("请输入10个字符:\\n");gets(a);for(i = 0; i < 9; i++){ max = i;for(j = i+1; j < 10; j++)if(a[max] < a[j])max = j;t = a[max];a[max] = a[i];a[i] = t;} puts...

C语言:写一函数,用“冒泡法”对输入的10个字符按由小到大顺序排列_百度...
1、打开Visual stdio 2019软件新建空白c文件,在源文件处右击鼠标,选择添加下面的新建项,此时会弹出窗口:2、弹出的窗口选择C++文件,将文件扩展名改为“.c”点击添加完成新建c文件,之后就可以编写程序了:3、接下来就可以编写程序了,首先最前面的部分为输入数字的部分,之后的程序会对用户输入的数字...

用冒泡排序法对输入的10个数进行升序排序 并存入数组中
1、打开sublime text 3,点击左上方的“文件”,选择“新建文件”,新建一个后缀名为.html的文件,并命名标题。2、在Body中添加一个简单的input按钮,添加一个点击事件mymaopao,用来在浏览器中查看效果。3、定义两个变量i,j。使用两个for循环嵌套遍历数组,第一个i作用为循环次数,第二个j作用是比...

c语言 写一个函数,用气泡法对输入的10个字符按从大到小顺序排列!!!急...
void BubbleSorting(char arr[], int n){ char temp;for(int i=0; i<n-1; i++){ for(int j=0; j<n-1-i; j++){ if(arr[j] < arr[j+1]){ temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;} } } } void main(){ char arr[N];int i;printf("请输入十...

c语言: 输入10个字符串,用选择排序法对十个字符串按大到小排序并输出...
include<stdio.h> include<stdlib.h> define N 10\/* 设定要输入的字符串个数,可更改 *\/ int cmp(char *p1,char *p2) \/* 字符串比较函数 *\/ {int i=0;while (*(p1+i)==*(p2+i))if (*(p1+i++)=='\\0') return 0; \/* 这里是先判断*(p1+i)=='\\0',然后再是i++ *\/...

C语言编程,输入10个整数,分别按顺序和逆序输出
C语言通过输入十个整数然后分别顺序和逆序输出的编程思想和方法如下:1.首先需要定义一个整型数组用于存储输入的10个整数。这里定义一个数组a。2.然后利用for循环,接受从键盘输入的10个整数。这里使用i作为循环的游标变量。3.输入完毕后,再次利用for循环来顺序输出存储在数组的十个数。这里同样使用局部...

C语言问题,任意输入十个数,去掉其中最大值和最小值,求剩余数的平均值...
1、将输入的十个数,存到数组中;2、遍历数组,找到最大值和最小值;3、从数组中将最大值和最小值移除;4、将剩余的8个数值累加,并将和值除以8,得到平均值;5、输出结果。二、优化方式:分析原始算法,需要循环多次,包括输入,查找最值,移除,累加等。针对此,可以进行优化。1、查找最大值...

C语言:输入10个整数,对其中前5个数按降序排列,然后输出这10个整数
void main(void){ int nDec[10],i,j,k;printf("Type 10 data...\\n");for(i=0;i<10;scanf("%d",nDec+i++));for(i=0;i<5;i++){ for(k=i,j=k+1;j<5;j++)if(nDec[k]<nDec[j]) k=j;if(k!=i){ j=nDec[k];nDec[k]=nDec[i];nDec[i]=j;} } for(i=0;i<...

用C语言编程:用选择法对10个整数排序,10个整数用scanf函数输入
1、打开visual C++ 6.0,准备一个空白的c语言文件,引入头文件,在main函数中定义变量和数组:2、接下来用scanf函数输入的10个数,将输入的数存入到变量a中,接着进行比较排序,如果后一个数比前一个数大则利用中间变量t实现俩值互换,最后输出排序的结果:3、编译运行程序,输入任意的10个数,回车...

如何在C语言中输入10个数的最大值?
C语言输入十个数的编程方法如下:1.首先需要定义一个整型数组空间,因为这里需要输入十个数,所以数组空间为10个。2.接着定义一个最大值Max,初始默认值为0,这个用于后续值的比较。3.接着使用for循环,来连续接收10个数字的输入。4.每次接收到一个数后,使用Max进行比较,如果比Max则将Max更新为更...

勉县17670063707: C语言程序:依次输入十个数、要求按照从小到大的顺序输出 -
主咽地屈: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30# include <stdio.h> #define N 10//元素个数 voidsort(inta[], intn)//排序函数 {inti=0,j=0,temp; for(i=0; i<n; i++){for(j=i+1; j<n; j++){if(a[j]<a[i]){temp = a[i];a[i] = ...

勉县17670063707: C语 从键盘输入10个数,要求按从小到大排列出来 -
主咽地屈: #include "stdio.h" //冒泡法 由小到大排序main() { int i,j,a[10],temp; 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; } for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); }

勉县17670063707: 用C语言编程:从键盘中输入10个整数,并将这些数按从小到大顺序排列. -
主咽地屈: #include<stdio.h> void main(){ int num[10],i,j,temp; for(i=0;i<10;i++){ printf("请输入百第度%d个数知:",(i+1)); scanf("%d",num[i]); } for(i=0;i<10;i++){ for(j=0;j<10-i;j++){ if(num[j]>num[j+1]){ temp=num[j]; num[j]=num[j+1]; num[j+1]=temp; } ...

勉县17670063707: C语言程序设计: 从用户输入10个整数,对其按照从小到大的顺序排序,并输出结果. -
主咽地屈: #include int main() {int a[10],i;for(i=0;iscanf(逗%d地,&a[i]);//对十个元素输入数值 for(i=0;iprintf(逗%d地,a[i]);return 0;}

勉县17670063707: C语言编写一段程序,输入10个数,按从打到小排列,并显示最大最小 -
主咽地屈: #include<stdio.h> #define n 10 void sort(int b[]) {int temp,i,j;for(i=0;i<n;i++)for(j=0;j<n-i;j++)if(b[j]>b[j+1]){temp=b[j];b[j]=b[j+1];b[j+1]=temp;} }int main(){int i;int a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);sort(a);for(i=n-1;i>=0;i--)printf(...

勉县17670063707: c语言高手帮忙:从键盘输入10个整数.用选择法或冒泡法将它们从小到大的顺序排序,并以此顺序输出. -
主咽地屈: #include main() {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",s[j]); printf("\n"); }

勉县17670063707: c语言关于用简单选择法对输入的10个整数进行由小到大排列 -
主咽地屈: 楼主这段代码是这样看得::::for(i=0;i<9;i++){ k=i; for(j=i+1;j<10;j++) /* 循环 注意我打的回车 for 和 if 后面不带 { } 的话 作用范围 只有 后面的一句 */ if(a[j]<a[k]) k=j; if(i!=k){ x=a[i]; /*这三行 是交换 a[i] 和 a[k] 的值 k是中间变量 */ a[i]=a[k]; a[k]=x; } }

勉县17670063707: C语言 编程序 用选择法对10个数按从小到大的顺序排列. -
主咽地屈: #include void main() { int a[10]; int i,j,t; printf("input 10 numbers:\n"); for(i=0;i scanf("%d",&a[i]); for(i=0;i for(j=0;j 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 printf("%d",a[i]); printf("\n"); }

勉县17670063707: 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]) //这是由小到大排序 如果是大到小则改...

勉县17670063707: C语言编写程序,对从键盘输入的10个数按从小到大的顺序输出! 很急 求答案!拜托各位了 3Q -
主咽地屈: #includeint main() { int i,j,a[10], t; for(i=0;ia[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } for(i=0;i

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网