C语言:输入10个数依次从大到小排序!
用数组来存放十个数字,使用“冒泡排序”来实现排序。10个数字需进行9轮扫描,每次扫描时比较相邻的二个数,如它们不符合要求的大小关系,就交换它们的位置。第一轮扫描结束时,最大的数就“沉”到最后。于是第二的范围就少了一个数。再进行第二两栖型、第三轮,…——直到第9轮就完成了。最后输出结果。
#includestdio.h
int
main()
{
int
a[10],i,j,t;
printf(“请输入10个整数:\n”);
for(i=0;i10;i++)
scanf(“%d”,a[i]);
for(i=0;i9;i++)
for(j=0;j9-i;j++)
if(a[j]a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf(“排序以后的数:\n”);
for(i=0;i10;i++)
printf(“%d
“,a[i]);
printf(“\n”);
system(“pause”);
return
0;
}
如果要从大到小排,只要把上面的交换条件
if(a[j]a[j+1])换为
if(a[j]a[j+1])就可以了。
C语言:对输入的十个数进行从小到大排序
1、首先打开编辑软件,新建一个c程序空文件,引入标准库和主函数,定义一个QuickSort函数用来排序,下面首先编写排序函数的:
2、此处用到快速排序思想,通过一趟排序将要排序的数据分割成独立的两部分,即这里用i和j两个变量分割数据,然后一部分的所有数据都比另外一部分的所有数据都要小,接着对这两部分数据分别进行比较排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列:
3、接着编写主函数,主函数中定义一个数组,然后用scanf接受数组,用户输入10个数以后,会将数存在数组array中,然后调用上面处理排序的函数,函数的输入就是刚才输入的数,最后在把排序的结果输出即可:
4、最后编译运行,输入10个数,最后控制台输出了排序的结果,证明程序的逻辑是没有问题的。以上就是C语言输入10个数排序的演示:
对10个数进行排序(C语言)
#includestdio.h
int main() {
int a[10] = {0, 3, 2, 5, 77, 8, 23, 44, 32,6};
int i, j;
int min, index;
int tmp;
for(i = 0; i 9; i++) {
j = i + 1;
min = a[j];
index = j;
for(j = (i + 2); j 10; j++) {
if(min a[j]) {
min = a[j];
index = j;
}
}
if(a[i] min) {
tmp = a[i];
a[i] = min;
a[index] = tmp;
}
}
for(i = 0; i 10; i++) {
printf(“%d “, a[i]);
}
printf(“\n”);
return 0;
}
C语言用选择法对10个整数按从大到小排序。10个整数用scanf函数输入。
#include//标准输入输出函数调用需要此头文件、就是那个printf和scanf函数要用的\x0d\x0avoid main()//主函数\x0d\x0a{int i,j,min,temp,a[10];\x0d\x0aprintf(“请输入:\n”); //屏幕输出引号内的字符然后换行\x0d\x0afor(i=1;ia[j]) min=j; //大小数值判断\x0d\x0atemp=a[i]; \x0d\x0aa[i]=a[min]; //a[i]里存放的最小数值\x0d\x0aa[min]=temp;} \x0d\x0aprintf(“\n从大到小排列是:\n”); //输出字符\x0d\x0afor(i=10;i=1;i–) //循环输出按大小排列的数据\x0d\x0aprintf(“%5d”,a[i]);\x0d\x0aprintf(“\n”);//每输出一个数据换行\x0d\x0a}
用C语言编程:用选择法对10个整数排序,10个整数用scanf函数输入
1、打开visual C++ 6.0,准备一个空白的c语言文件,引入头文件,在main函数中定义变量和数组:
2、接下来用scanf函数输入的10个数,将输入的数存入到变量a中,接着进行比较排序,如果后一个数比前一个数大则利用中间变量t实现俩值互换,最后输出排序的结果:
3、编译运行程序,输入任意的10个数,回车后即可看到排序后的结果。以上就是c语言中选择排序的用法:
C语言如何输入十个数,按从大到小顺序排列!
代码如图所示:
#includestdio.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++) //循环
if (a[i] a[j]){
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
printf(“从大到小排序后:”);
for (i = 0; i 10; i++)
printf(“%2d”, a[i]);
return 0;
}
扩展资料
C语言顺序排列题的其他解法
#include stdio.h
int main()
{
int a[10];
int i,j;
int temp;
printf(“请输入10个整数:”);
for(i=0;i10;i++)
{
scanf(“%d”,a[i]);
}
for(i=0;i9;i++)
{
for(j=0;j9-i;j++)
{
if(a[j]a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf(“排列后顺序为:”);
for(i=0;i10;i++)
{
printf(“%d “,a[i]);
}
printf(“\n”);
return 0;
}
参考资料:百度百科-c语言