问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请大佬帮忙编一个c语言程序

发布网友 发布时间:2023-08-14 06:04

我来回答

3个回答

热心网友 时间:2024-11-17 16:25

键盘上输入数,然后排序的代码如下:

#include <stdio.h>
int main()
{
    int i, j, a[100], m, n, temp;
    printf("输入数据数量:\n");
    scanf("%d",&n);
    printf("输入%d个数据:\n",n);
    for (i=0; i<n; i++) scanf("%d", &a[i]);

    //选择排序
    for (j=0; j<n-1; j++)
    {
        m = j;
        for (i=j+1; i<n; i++)
        {
            if (a[i] < a[m])
            {
                 m = j;
            }
        }
        temp = a[j];
        a[j] = a[m];
        a[m] = temp;
    }

    //显示结果
    for (i=0; i<n; i++)
    {
        printf("%4d", a[i]);
    }

    return 0;
}

从小到大选择排序的基本思想是,如果有N个元素需要排序,那么首先从N个元素中找到最小的那个元素与第0位置上的元素交换(如果没有比原本在第0位置上的元素小的就不用交换了,后面的同样是),然后再从剩下的N-1个元素中找到最小的元素与第1位置上的元素交换,之后再从剩下的N-2个元素中找到最小的元素与第2位置上的元素交换,直到所有元素都排序好。

追问

不对呀 有错误

追答应该是:
temp = a[j];

a[j] = a[m];
代码修改好,重新复制

热心网友 时间:2024-11-17 16:26

#include <stdio.h>
#include <malloc.h>

void print(int *arr, int ln)
{
    int i = 0;
    for (; i < ln; ++i)
    {
        printf("%5d ", arr[i]);
    }
    printf("\n");
}

void bubbleSort(int *arr, int n)
{
    int x, y;
    do {
        y = 0;
        for (x = 0; x < n - 1; x++) {
            if (arr[x] > arr[x + 1]) {
                const int temp = arr[x];
                arr[x] = arr[x + 1];
                arr[x + 1] = temp;
                y = 1;
            }
        }
    } while (y);
}

int main()
{
    int i, n, *p;

    printf("输入数据数量:");
    scanf("%d", &n);
    p = (int*)malloc(sizeof(int)*n);

    printf("输入%d个数据:", n);    
    for (i = 0; i < n; i++) scanf("%d", p + i);

    printf("input :"); print(p, n);
    bubbleSort(p, n);
    printf("sorted:"); print(p, n);
    
    free(p);
    return 0;
}

热心网友 时间:2024-11-17 16:26

#include<stdio.h>
int main(){
int i,j,k,N;
scanf("%d\n",&N);
int arr[N];
for(i=0;i<N;i++){
scanf("%d\n",&arr[i]);
}
for(j=0;j<N;j++){
for(k=j+1;j<N-j;j++){
if(arr[j]>arr[k]){
int temp=arr[j];
arr[j]=arr[k];
arr[k]=temp;
}
}
}
for(int m=0;m<N;m++){
printf("%d\n",arr[m]);
}

}追答冒泡排序

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 怎么更改 如何更改? 怎么改 怎么更改更改的方法 仟禧宴什么意思? 微信怎么改 手机怎样修改 微信小程序绑定的能换吗? 前端开发和ui的区别 入芝兰之室久而不闻其香入鲍鱼之肆久而不闻其臭这是一种什么感觉 入芝兰之室,久闻而不知其香 说明的是 “人芝兰之室,久而不闻其香;人鲍鱼之肆,久而不闻其臭”这说明感受性产生... “人芝兰之室,久而不闻其香”描述的是( )。 入货20元卖出40元它的利润百分之几 怎样做一个坚强、温柔、可爱的女孩 像电脑城和写字楼或购物广场这样的房产,他们招商时,里面的商铺是... 本人现在有一套住房,想买商铺可是没钱,最好的办法是什么 灌南到盐城市收费站一共有多少公里 灌南到阜宁怎么走?路程大概有多远? 阜宁沟墩镇到江苏连云港灌南 一个c语言的程序题? 求编程c语言大佬编写程序 一个c语言题目 写程序 下载失败内存被吞 哥们您好!可不可以把您在115网盘戏曲60G资料分享下,我母亲很喜欢听求... 你好!我刚注册了115网盘357713452,想请问你怎么能分享到您网盘上的... 您好,您分享给我的115盘上的戏曲,我点了接受后就出现让我登陆网盘的页面... 115我已经注册了,请问怎么能找到你说的60g的戏曲资源,求分享。 ...的全集吗,我的邮箱号:371013096@.com 115网盘号是:305643158。谢谢... ...有的直接发给我啊,急要啊~有的加353148313,真心感谢了~ 可以把那些戏曲发给我一些吗?我的QQ1660492705,谢谢! 厕所马桶盖发黄怎么办 马桶盖内发黄怎么办 抽水马桶盖颜色发黄怎么办 马桶盖氧化发黄怎么办 酸碱滴定实验中,为什么锥形瓶中的待测液要在25ml左右 为什么要把样品溶解成250ml后再吸出25ml进行滴定 重铬酸钾标定硫代硫酸钠滴定液时为什么要加水250ml稀释?不稀释的话对... 卓玛丹通心舒胶囊售价 益心舒胶囊副作用,益心舒胶囊作用