如题所述
代码如下:
int a[20];int i,j,t;
printf("请输入20个数字,以回车间隔:");
for(i=0;i<20;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<20;j++)
for(i=0;i<20-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("排序好的数组为:\n");
for(i=0;i<20;i++)
printf("%d ",a[i]);
printf("\n");
}
void main()
{
int q;
printf("输入您要排序的数字的个数:");
scanf("%d",&q);
int a[q];
int i,j,t;
printf("Wisefox制作 %d个数字排序。\n\n\n\n\nPlease input %d numbers:",q,q);
for(i=0;i<q;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<q;j++)
for(i=0;i<q-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("排序好的数组为:\n");
for(i=0;i<q;i++)
printf("%d ",a[i]);
printf("\n");
}
要是不支持中文的话 printf你自己改下吧本回答被提问者采纳
存储那20个数.
设一个a[k],k=0
从a[0]开始比.a[1] a[2]一个一个比.比如a[5]有比a[k]大的,就令k=5.一轮比下来得到的a[k]就是最大的了,
然后搞个循环.
最后输出.
只是个算法.程序自己写嘞
比如
1.选择排序法
#include<stdio.h>
void main()
{
int i,j,min,temp;
int a[10];
printf("请输入二十个整数:");
for(i=0;i<=19;i++)
scanf("%d",&a[i]);
for(i=0;i<19;i++)
{
min=i;
for(j=i+1;j<=19;j++)
{
if(a[min]>a[j])
{
min=j;
}
temp=a[j];
a[j]=a[min];
a[min]=temp;
}
}
for(i=0;i<=9;i++)
printf("%4d",a[i]);
}
2.冒泡排序法
#include<stdio.h>
void main()
{
int i,j,temp;
int a[10];
printf("请输入二十个整数:");
for(i=0;i<=19;i++)
scanf("%d",&a[i]);
for(i=0;i<19;i++)
for(j=19;j>i;j--)
{
if(a[j]<a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}/*
for(j=0;j<19-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}大的气泡往下沉,小的气泡往上浮!!!注意:是a[j-1]还是a[j+1];
深刻了解!!!
*/
for(i=19;i>=0;i--)
printf("%4d",a[i]);
}
通过这两个程序,可以发现他们的编程还是有些区别的,但是总结下:
相同点:
1.都要通过n-1组排出具有n个数的顺序;
2.都是通过逐个相比,比出最值的;
。。。
不同点:
1.冒泡法,顾名思义就是把小的泡冒到上面,大的泡沉到下面,最值在中间和其他的值交换;
而选择法,是假定了一个最值,所以最值和其他的值的交换就发生在假定最值的地方;
。。。
其实冒泡法和选择法的区别不大,都是效率比较低的方法。
c语言中输入20个数排列大小顺序
int a[20]; int i,j,t; printf("请输入20个数字,以回车间隔:"); for(i=0;i<20;i++) scanf("%d",&a[i]); printf("\\n"); for(j=0;j<20;j++) for(i=0;i<20-j;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a...
...这20个数从键盘输入,并输出排序前和排序后的数据
include<stdio.h> main(){int i,j,k,a[20],temp;\/\/数组太小 for(i=0;i<20;i++)scanf("%d",&a[i]);for(i=0;i<20;i++)printf("%d ",a[i]);printf("\\n");\/\/需要换行 for(i=0;i<19;i++){k=i;for(j=i+1;j<20;j++)if(a[j]...
C语言,编写程序,输入20个各不相同的正整数,将其中偶数从小到大输出...
int cmp(const void *x, const void *y){ return *(int *)x - *(int *)y;} int main(){ int a[25];int i, j, k;for (i = 0; i < 20; i++)scanf("%d",&a[i]);qsort(a, 20, sizeof(a[0]), cmp);for (i = 0; i < 20;i++)if (a[i] % 2 == 0)pr...
C语言编程 有一个20个元素的double型数组,要求用起泡法方法将这20个元 ...
int main(){ double a[20],t;int n,i,j;n=20;printf("请输入%d个实数:\\n",n);for(i=0;i<n;i++)scanf("%lf",&a[i]);printf("\\n");for(j=0;j<(n-1);j++) \/*进行n-1次循环,实现n-1趟比较*\/ for(i=0;i<(n-1-j);i++) \/*在每一趟中进行n-1-j次比较*\/ ...
用“冒泡法对20个整数进行排顺(用C语言编译)
今天我们将探讨一种简单的排序方法——冒泡排序。冒泡排序适用于对20个整数进行排序。首先,我们需要定义一个整数数组,用于存放这20个整数。接着,我们利用循环结构,依次读取这20个整数并存储到数组中。这个过程可以使用一个for循环实现,其中的循环次数为20,每次循环要求用户输入一个整数并将其存入数组的...
输入20个数,求其中最大数和最小数 c语言 不用数组 用循环结构
C语言语法记不太清了,给你写一个pseudocode。其实这个就是一个简单的排序题,排序算法不限。建议使用最符合直觉的选择排序。考虑到不能使用数组,那就只能在每次输入时比较,立即出结果 input 一个数, prev为输入的上一个数 int MAX = prev;int MIN = prev;if(curr > MAX){ MAX = curr;} el...
用C语言实现输入20个数偶数项按升序输出,奇数项不变,
{ int arr[20] = {1,4,2,3,8,7,6,5,9,10,20,19,18,17,16,15,14,13,12,11};int tmp, i, j;for(i=0; i<20; i+=2) \/\/i+=2即可。。同样如果认为a[1]是偶数项的话从a[0]开始 for(j=i; j<20; j+=2)if(arr[i]>arr[j])tmp =arr[i], arr[i]=arr[j]...
随机产生20个100以内的数,输出;按从小到大的顺序排序,输出。(用C语言...
int main(){ int a[20];int i, j, t;srand(time(NULL));for (i = 0; i < 20; i++)a[i] = rand() % 100;for (i = 0; i < 19; i++)for (j = i + 1; j < 20; j++)if (a[i]<a[j]){ t = a[i];a[i] = a[j];a[j] = t;} for (i = 0; i...
C语言:随机产生20个20~50之间的随机整数,然后排序后输出。
\/* Note:Your choice is C IDE *\/ include <stdlib.h> include <stdio.h> include void main(){ int num[100],i,j,temp;randomize();printf("原始数组的顺序为:");for(i=0;i<20;i++){ num[i]=random(30)+20;printf("%d\\t",num[i]);} printf("\\n排序数组的顺序为:");fo...
求一个C语言的答案。设一个整型数组有20个元素,请输入该数组中的元素...
for(int i=0;i<20;i++){ printf("输入第%d个元素\\n",(i+1));scanf("%d",&num[i]);} for(int i=0;i<20;i++)for(int j=0;j<20-i;j++){ if(num[j]>num[j+1]){t=num[j];num[j]=num[j+1];num[j+1]=t;} } for(int i=0;i<20;i++)printf("%d ",num[...