鱼C论坛

 找回密码
 立即注册
查看: 910|回复: 5

[已解决]教教孩子

[复制链接]
发表于 2023-11-21 13:47:48 | 显示全部楼层 |阅读模式
10鱼币
选择法排序:本题要求将给定的n个整数从小到大排序后输出。输出时相邻数字中间用一个空格分开,行末不得有多余空格。
#include <stdio.h>

# define MAXN 10



int main()

{

  int i, index, k, n, temp;

  int a[MAXN];



  scanf("%d", &n);

  for(i = 0; i < n; i++){

    scanf("%d", &a[i]);

  }

   

  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[i]);

    }else{

      printf(" %d", a[i]);

    }

  }

  printf("\n");



  return 0;

}
麻烦讲一下,谢谢
最佳答案
2023-11-21 13:47:49
#include <stdio.h>

//1.宏定义常量MAXN为10
# define MAXN 10

int main() {
    int i, index, k, n, temp;
    //2.创建一个数组a,容量为10
    int a[MAXN];

    //3.接收用户输入的数字赋值给变量n
    scanf_s("%d",&n);

    //4.接收用户输入的n个数依次放入数组a
    for (i = 0; i < n; i++) {
        scanf_s("%d", &a[i]);
    }

    //5.冒泡排序,外层循环为冒泡轮数,每一轮产生一个最大的数放到a的最后一个位置,轮数为n-1
    for (k = 0; k < n - 1; k++) {

        //6.指向数组中较小的数的索引
        index = k;

        //7.内层循环,两数比较,找出所有数中最小的那个
        for (i = k; i < n; i++) {
            if (a[i] < a[index]) {
                index = i;
            }
        }
        
        //8.将最小的数移动到a中最前面的位置
        temp = a[k];
        a[k] = a[index];
        a[index] = temp;
    }

    //9.数组a中的数已经排好序,遍历输出数组a,若为第一个数则前面不加空格
    for (i = 0; i < n; i++) {
        if (i == 0) {
            printf("%d", a[i]);
        }
        else {
            printf(" %d", a[i]);
        }
    }

    //10.换行
    printf("\n");

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-21 13:47:49 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>

//1.宏定义常量MAXN为10
# define MAXN 10

int main() {
    int i, index, k, n, temp;
    //2.创建一个数组a,容量为10
    int a[MAXN];

    //3.接收用户输入的数字赋值给变量n
    scanf_s("%d",&n);

    //4.接收用户输入的n个数依次放入数组a
    for (i = 0; i < n; i++) {
        scanf_s("%d", &a[i]);
    }

    //5.冒泡排序,外层循环为冒泡轮数,每一轮产生一个最大的数放到a的最后一个位置,轮数为n-1
    for (k = 0; k < n - 1; k++) {

        //6.指向数组中较小的数的索引
        index = k;

        //7.内层循环,两数比较,找出所有数中最小的那个
        for (i = k; i < n; i++) {
            if (a[i] < a[index]) {
                index = i;
            }
        }
        
        //8.将最小的数移动到a中最前面的位置
        temp = a[k];
        a[k] = a[index];
        a[index] = temp;
    }

    //9.数组a中的数已经排好序,遍历输出数组a,若为第一个数则前面不加空格
    for (i = 0; i < n; i++) {
        if (i == 0) {
            printf("%d", a[i]);
        }
        else {
            printf(" %d", a[i]);
        }
    }

    //10.换行
    printf("\n");

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-11-21 17:20:28 | 显示全部楼层
松花蛋江 发表于 2023-11-21 16:50
#include

//1.宏定义常量MAXN为10

谢谢你,讲的很细致,但是这个程序得不到预期的结果,还需要完善一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-11-21 17:43:13 | 显示全部楼层
顶顶顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-21 18:30:51 | 显示全部楼层
王小二° 发表于 2023-11-21 17:20
谢谢你,讲的很细致,但是这个程序得不到预期的结果,还需要完善一下

我改好了,应该是可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-11-21 21:22:08 | 显示全部楼层
松花蛋江 发表于 2023-11-21 18:30
我改好了,应该是可以了

谢谢,解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-21 08:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表