C语言的数组与字符串练习题2
C语言的数组与字符串练习题2
6. 数组排序(降序)
题目描述:
编写一个C程序,输入5个整数存储在数组中,对数组进行降序排序,并输出排序后的数组。
解题思路:
类似于升序排序,使用冒泡排序算法,但在比较时调整条件,使得较大的元素向前移动。
程序流程如下:
- 声明一个数组,大小为5。
- 提示用户输入5个整数,并存储在数组中。
- 使用嵌套
for
循环实现冒泡排序(降序)。 - 输出排序后的数组。
详细代码:
#include <stdio.h>int main() {int arr[5];int temp;// 提示用户输入5个整数printf("请输入5个整数:\n");for(int i = 0; i < 5; i++) {scanf("%d", &arr[i]);}// 冒泡排序(降序)for(int i = 0; i < 5 - 1; i++) {for(int j = 0; j < 5 - 1 - i; j++) {if(arr[j] < arr[j + 1]) {// 交换arr[j]和arr[j + 1]temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}// 输出排序后的数组printf("降序排序后的数组元素为:\n");for(int i = 0; i < 5; i++) {printf("arr[%d] = %d\n", i, arr[i]);}return 0;
}
代码注释:
int arr[5];
:声明一个大小为5的整数数组。for(int i = 0; i < 5; i++)
:循环读取用户输入的5个整数并存储在数组中。- 冒泡排序部分:
- 外层循环控制排序的次数,每次将最小的元素移动到未排序部分的末尾。
- 内层循环比较并交换相邻的元素,如果前一个元素小于后一个元素,则交换,确保较大的元素向前移动。
printf
:输出降序排序后的数组元素。
7. 二维数组的初始化与访问
题目描述:
编写一个C程序,声明并初始化一个3x3的二维整数数组,然后遍历并打印所有元素。
解题思路:
二维数组可以看作是数组的数组。初始化时可以在声明时直接给出二维元素。遍历二维数组需要使用嵌套的for
循环,分别控制行和列的索引。
程序流程如下:
- 声明并初始化一个3x3的二维整数数组。
- 使用嵌套
for
循环遍历二维数组的行和列。 - 在循环中打印每个数组元素。
详细代码:
#include <stdio.h>int main