| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2566 人关注过本帖
标题:这个怎么的思路 怎么写 谢谢
只看楼主 加入收藏
丫头猫咪
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-3-27
结帖率:25%
收藏
 问题点数:0 回复次数:10 
这个怎么的思路 怎么写 谢谢
对n个数组元素进行排序,然后输出。第一趟排序在所有待排序的n个元素中选出最小的元素,将它与第一个元素交换;第二趟在剩下的n-1个元素中再选出最小的元素,将其与第二个元素交换;重复这样的操作,依次选出数组中第三小、第四小……的元素,将它们分别换到数组的第三、第四……个位置上。排序进行n-1趟则完成所有数从低到高排列。
使用到的知识点:(1)数组的定义(2)数组的输入(3)选择排序算法
要求:
(1)首先从键盘上输入要排序数组元素的个数,然后输入相对应个数的数组元素,然后程序排序后将结果从小到大升序输出。
(2)源文件名称:sort.c
(3)例如从键盘上输入: 9 1 4 7 3 6 9 5 2 8
程序应该输出: 1 2 3 4 5 6 7 8 9
说明:第1个数字9是要输入的数组元素的个数,后面的1 4 7 3 6 9 5 2 8是数组元素。
(4)程序运行后如下图所示:
搜索更多相关主题的帖子: 知识点 键盘 元素 
2017-04-12 17:56
NiuYoohoo
Rank: 4
等 级:业余侠客
威 望:2
帖 子:65
专家分:216
注 册:2016-10-8
收藏
得分:0 
这就是传说中的冒泡排序啊
2017-04-12 18:03
NiuYoohoo
Rank: 4
等 级:业余侠客
威 望:2
帖 子:65
专家分:216
注 册:2016-10-8
收藏
得分:0 
说错了这不是冒泡,这个和冒泡很相似
收到的鲜花
2017-04-12 18:05
NiuYoohoo
Rank: 4
等 级:业余侠客
威 望:2
帖 子:65
专家分:216
注 册:2016-10-8
收藏
得分:0 
美女需要帮助就消息我啊
2017-04-12 18:09
丫头猫咪
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-3-27
收藏
得分:0 
那个  怎么写  写不出来  运行出错
2017-04-12 18:14
NiuYoohoo
Rank: 4
等 级:业余侠客
威 望:2
帖 子:65
专家分:216
注 册:2016-10-8
收藏
得分:0 
(⊙o⊙)…那我就给你写下吧。。。。。写入门的还是。。。  。。。。
2017-04-12 18:25
NiuYoohoo
Rank: 4
等 级:业余侠客
威 望:2
帖 子:65
专家分:216
注 册:2016-10-8
收藏
得分:0 
#include <stdio.h>

#define  N_MAX 100

int main()
{
    int count;
    int arry[N_MAX];
    /* 输入个数 */
    scanf("%d", &count);
    /* 如果个数越界那么改变为所支持的最大*/
    count = count > N_MAX ? N_MAX : count;
    for (int i = 0; i < count; i++)
    {
        /* 给数组赋值*/
        scanf("%d", &arry[i]);
    }

    int index;//最小值的下标
    int min;
    int tmp;//用于交换
    for (int i = 0; i < count; i++)
    {
        /* 假定当前为最小*/
        min = arry[i];
        index = i;
        for (int j = i; j < count; j++)
        {
            if (arry[j] < min)
            {
                index = j;//记录下标
                min = arry[j];//记录最小
            }
        }
        /* 进行交换*/

        tmp = arry[index];
        arry[index] = arry[i];
        arry[i] = tmp;
    }


    /* 输出排序结果*/

    for (int i = 0; i < count; i++)
        printf("%d ",arry[i]);
    return 0;
}
2017-04-12 18:36
NiuYoohoo
Rank: 4
等 级:业余侠客
威 望:2
帖 子:65
专家分:216
注 册:2016-10-8
收藏
得分:0 
回复 7楼 NiuYoohoo
好久没有这么写过注释了
2017-04-12 18:37
NiuYoohoo
Rank: 4
等 级:业余侠客
威 望:2
帖 子:65
专家分:216
注 册:2016-10-8
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
//  长度收缩
int main()
{
    int count;
    /* 输入个数 */
    scanf("%d", &count);
    int *arry = NULL;
    arry = (int*)malloc(count*sizeof(int));
    for (int i = 0; i < count; i++)
    {
        /* 给数组赋值*/
        scanf("%d", &arry[i]);
    }

    int index;//最小值的下标
    int min;
    int tmp;//用于交换
    for (int i = 0; i < count; i++)
    {
        /* 假定当前为最小*/
        min = arry[i];
        index = i;
        for (int j = i; j < count; j++)
        {
            if (arry[j] < min)
            {
                index = j;//记录下标
                min = arry[j];//记录最小
            }
        }
        /* 进行交换*/

        tmp = arry[index];
        arry[index] = arry[i];
        arry[i] = tmp;
    }


    /* 输出排序结果*/

    for (int i = 0; i < count; i++)
        printf("%d ",arry[i]);

    free(arry);
    arry = NULL;
    return 0;
}
2017-04-12 18:40
丫头猫咪
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-3-27
收藏
得分:0 
谢谢~~~
2017-04-12 19:25
快速回复:这个怎么的思路 怎么写 谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023130 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved