题目:
编写一个C程序,从用户那里接收三个整数输入,并将这三个整数按照降序排列后输出。
实现思路:
- 声明一个整数数组
a
,长度为3,用于存储用户输入的三个整数。- 提示用户输入三个整数,并用逗号分隔。
- 使用
scanf
函数读取用户输入的三个整数,并存储在数组a
中。- 使用嵌套循环实现冒泡排序算法,对数组
a
中的元素进行降序排列。- 输出排序后的数组
a
中的元素。
代码:
#include <stdio.h>
int main() {
int a[3]={}, i, j, t; // 声明一个长度为3的整数数组a,并初始化。同时声明循环变量i, j和临时变量t。
printf("Import 3 num:\n"); // 输出提示信息,要求用户输入三个整数。
scanf("%d,%d,%d",&a[0],&a[1],&a[2]); // 使用scanf函数读取用户输入的三个整数,并存储在数组a中。
for(i=0; i<3; i++){ // 外层循环,遍历数组a中的每个元素。
for(j=0; j<3; j++){ // 内层循环,与外层循环结合,实现冒泡排序。
if(a[i] < a[j]){ // 如果当前元素a[i]小于后面的元素a[j],则交换它们的位置。
t = a[i]; // 将a[i]的值保存在临时变量t中。
a[i] = a[j]; // 将a[j]的值赋给a[i]。
a[j] = t; // 将保存在t中的原a[i]的值赋给a[j]。
}
}
}
printf("%d %d %d",a[0],a[1],a[2]); // 输出排序后的数组a中的元素。
return 0; // 程序正常结束,返回0。
}
解读:
#include <stdio.h>
:包含标准输入输出头文件,以使用printf
和scanf
等函数。int main() { ... }
:程序的主函数。int a[3]={}, i, j, t;
:声明一个长度为3的整数数组a
,并初始化。同时声明循环变量i
和j
,以及临时变量t
用于交换元素。printf("Import 3 num:\n");
:输出提示信息,告诉用户需要输入三个整数。scanf("%d,%d,%d",&a[0],&a[1],&a[2]);
:使用scanf
函数读取用户输入的三个整数,并存储在数组a
中。注意,这里假设用户输入的整数之间用逗号分隔。- 嵌套循环
for(i=0; i<3; i++)
和for(j=0; j<3; j++)
:实现冒泡排序算法,对数组a
中的元素进行降序排列。if(a[i] < a[j])
:判断当前元素a[i]
是否小于后面的元素a[j]
。t = a[i]; a[i] = a[j]; a[j] = t;
:如果a[i]
小于a[j]
,则交换它们的位置。printf("%d %d %d",a[0],a[1],a[2]);
:输出排序后的数组a
中的元素。return 0;
:程序正常结束,返回0。