本文目录一览:
C语言十个数字从小到大怎么排列从大到小呢~
//要求任意输入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("\n");
return 0;
}
C语言中怎么把三个整数从小到大排列
原理就是运用冒泡算法,把最大的数浮在最上面,而小的数就下沉,最后就输出。 方法如下:
- 分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x > y则将x与y的值进行交换,
- 然后再用x与z进行比较,如果x > z则将x与z的值进行交换,这样能使x最小。
- 从控制台读入三个数;
- 实现三个数从小到大排序:
- 将第一个数作为最小数,依次和第二,三个数进行比较。两次比较重如果有任意一个比第一个小,则将两个数交换;
- 在(1)步后,得到第一个数为最小数。再将第二个数与第三个数比较大小后即可实现三个数从小到大排序。
拓展资料
两种常用排序方法:
- 选择排序法:从一列数中,选择第一个作为最小数,依次和后面的数进行比较。如有比第一个数小的数,则交换两个数。最后排到该列数都倒数第二个时,这列数就从小到大排好了顺序。
- 冒泡排序法:思路与选择排序法一致。不同的是,冒泡排序将第一个作为最大数,然后再和该数后的数进行比较。
4个数比较大小,结果从小到大排列,用C语言怎么编?
- 首先双击打开桌面上的C-Free5编程软件。
- 打开编程软件以后,创建一个新页面来编写程序。
- 编写代码。
- 编写完代码以后,按F5进行编译。或者点击上方的小三角。
- 编译时,如果有错误会进行报错,大家需要进行检查修改。如果没有错误,会出现【0个错误,0个警告】。
- 编译完成后进行运行,按照提示依次输入三个整数。依次输入1,2,3。
- 输入完成后再点击回车键,三个数就会被从小到大依次排序。
求C语言将数组元素大小排序!!
C语言将数组元素大小排序方法: 以下使用的是冒泡排序法实线数组从小到大排序。 思想:每次相邻两个数比较,若升序,则将大的数放到后面,一次循环过后,就会将最大的数放在最后。 10、2、3、4、5、6、9、8、7、1是输入的待排序的数列,经过第一次排序,将最大的10放在最后,第二次排序,将剩下的2、3、4、5、6、9、8、7、1进行冒泡,将当前最大的9放在倒数第二的位置,以此类推。
冒泡排序代码示例:
#include <stdio.h>
int main(){
int nums[10] = {10, 2, 3, 4, 5, 6, 9, 8, 7, 1};
int i, j, temp, isSorted;
//优化算法:最多进行 n-1 轮比较
for(i=0; i < 10-1; i++){
isSorted = 1; //假设剩下的元素已经排序好了
for(j=0; j < 10-1-i; j++){
if(nums[j] > nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
isSorted = 0; //一旦需要交换数组元素,就说明剩下的元素没有排序好
}
}
if(isSorted) break; //如果没有发生交换,说明剩下的元素已经排序好了
}
for(i=0; i < 10; i++){
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
选择排序代码示例:
#include <stdio.h>
int main(void){
int a[1001];
int n,i,j,t;
scanf("%d", &n); //n为要排序的数的个数
//输入需要排序的数
for(i=0; i < n; ++i)
scanf("%d", a+i);
//接下来进行排序
for(i=0; i < n-1; ++i) //因为每次需要和a[i]后面的数进行比较,所以到a[n-2](倒数第2个元素)就行
{
for(j=i+1; j < n; ++j) //j从i后一个开始,a[i]与a[j]进行比较
{
if(a[i] > a[j]) //a[i]为当前值,若是比后面的a[j]大,进行交换
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
} //每排序一次,就会将a[i](包括a[i])之后的最小值放在a[i]的位置
for(j=0; j < n; ++j)
printf("%-5d", a[j]);
printf("\n\n");
}
return 0;
}