赞
踩
将十个数进行从大到小的顺序进行排列
十个整数
以从大到小的顺序输出这个十个数
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1
代码首先引入了stdio.h
头文件,这是C语言标准输入输出库,用于处理输入输出函数。
main
函数是程序的入口点,它没有接收任何参数,也没有返回值。
在main
函数内部,定义了以下变量:
int arr[10];
:一个整型数组,用于存储用户输入的10个整数。int temp;
:一个整型变量,用于在排序过程中交换元素。int p = 0;
:一个标志变量,用于跟踪每次遍历是否发生了元素交换。使用一个for
循环来读取用户输入的10个整数:
scanf("%d", &arr[i]);
:使用scanf
函数读取一个整数,并将其存储在arr[i]
中。使用两层嵌套的for
循环来实现冒泡排序,外层循环控制排序的总轮数,内层循环进行相邻元素的比较和交换:
for
循环变量i
从0到8,表示需要进行9轮比较。for
循环变量j
从0到8,但在每轮比较中,只比较到第9-i
个元素,因为后面的元素已经在前面的轮次中排好序了。arr[j]
小于arr[j + 1]
,则交换这两个元素,并设置p
为1,表示发生了交换。如果在某一轮遍历中没有发生任何交换(即p
保持为0),则说明数组已经排好序,可以提前结束排序。
使用一个for
循环遍历排序后的数组,并使用printf
函数输出每个元素。
main
函数返回0,表示程序正常结束。
- #include <stdio.h>
- int main(void)
- {
- int arr[10];
- int temp;
- int p = 0;//用于遍历一次是否发生交换
- for (int i = 0; i < 10; i++)
- {
- scanf("%d", &arr[i]);
- }
- for (int i = 0; i < 9; i++)
- {
- p = 0;
- for (int j = 0; j < 9; j++)
- {
- if (arr[j] < arr[j + 1])
- {
- temp = arr[j];
- arr[j] = arr[j + 1];
- arr[j + 1] = temp;
- p = 1;
- }
- }
- if (p == 0)
- break;
- }
- for (int i = 0; i < 10; i++)
- {
- printf("%d ", arr[i]);
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。