教教孩子
选择法排序:本题要求将给定的n个整数从小到大排序后输出。输出时相邻数字中间用一个空格分开,行末不得有多余空格。#include <stdio.h>
# define MAXN 10
int main()
{
int i, index, k, n, temp;
int a;
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%d", &a);
}
for(k = 0; k < n-1; k++){
index = 【1】 ;
for【2】{
if【3】{
index = i;
}
}
【4】
}
for(i = 0; i < n; i++) {
if【5】{
printf("%d", a);
}else{
printf(" %d", a);
}
}
printf("\n");
return 0;
}
麻烦讲一下,谢谢 #include <stdio.h>
//1.宏定义常量MAXN为10
# define MAXN 10
int main() {
int i, index, k, n, temp;
//2.创建一个数组a,容量为10
int a;
//3.接收用户输入的数字赋值给变量n
scanf_s("%d",&n);
//4.接收用户输入的n个数依次放入数组a
for (i = 0; i < n; i++) {
scanf_s("%d", &a);
}
//5.冒泡排序,外层循环为冒泡轮数,每一轮产生一个最大的数放到a的最后一个位置,轮数为n-1
for (k = 0; k < n - 1; k++) {
//6.指向数组中较小的数的索引
index = k;
//7.内层循环,两数比较,找出所有数中最小的那个
for (i = k; i < n; i++) {
if (a < a) {
index = i;
}
}
//8.将最小的数移动到a中最前面的位置
temp = a;
a = a;
a = temp;
}
//9.数组a中的数已经排好序,遍历输出数组a,若为第一个数则前面不加空格
for (i = 0; i < n; i++) {
if (i == 0) {
printf("%d", a);
}
else {
printf(" %d", a);
}
}
//10.换行
printf("\n");
return 0;
} 松花蛋江 发表于 2023-11-21 16:50
#include
//1.宏定义常量MAXN为10
谢谢你,讲的很细致,但是这个程序得不到预期的结果,还需要完善一下
顶顶顶 王小二° 发表于 2023-11-21 17:20
谢谢你,讲的很细致,但是这个程序得不到预期的结果,还需要完善一下
我改好了,应该是可以了 松花蛋江 发表于 2023-11-21 18:30
我改好了,应该是可以了
谢谢,解决了
页:
[1]