爱编程的小笨孩


私信TA

用户名:2119394720

访问量:20431

签 名:

我在成长,总有一天我会足够优秀。

等  级
排  名 164
经  验 6798
参赛次数 6
文章发表 44
年  龄 0
在职情况 学生
学  校 黄河科技学院
专  业 软件工程

  自我简介:

一只想要当凤凰的鸡

TA的其他文章

解题思路:
首先判断输入的三个数a,b,c中a和b两个数的大小,将较小的数赋值给a,大的赋值给b,然后再判断a和c两个数的大小,较小的数赋值给a,大的赋值给c,以此来确保a中保存的是a,b,c三个数中最小的那个数,然后再判断b和c的大小,较小的保存在b里边,大的在c里边,最后依次输出a,b,c三个数。此题解题思路十分简单易懂,在排序数量少的情况下是非常常见的一种排序方法,十分适合初学者用来入门学习。

注意事项:
在两个数比较大小的过程中,temp的作用就是用来保存其中一个数字,方便两个数进行交换的,确保本来较大的数保存的是较小的值,本来较小的数,保存的是较大的值。

下面用一个形象的例子进行解释,以便读者理解:

假设有一瓶可乐和一瓶雪碧,现在想要将这两瓶饮料交换一下瓶子(这句话的意思就是把原来装可乐的瓶子装雪碧,原来装雪碧的瓶子装可乐),想要实现这一想法,最容易想到的方法就是先找来一个空瓶子,把可乐倒进空瓶子中,然后再把雪碧倒进原来装有可乐的瓶子中,再把原来空瓶子中的可乐倒进原来装有雪碧的瓶子里。

在这个例子中,空瓶子的作用就相当于是代码中temp的作用。

参考代码:

#include<stdio.h>
int main()
{
    //定义三个变量保存三个数字
    int a,b,c;
    //定义临时变量保存临时数据
    int temp;
    //从键盘接受三个数字
    scanf("%d %d %d",&a,&b,&c);
    //用if判断句依次判断两个数的大小
    if(a>b)
    {
        temp=a;
        a=b;
        b=temp;
    }
    if(a>c)
    {
        temp=a;
        a=c;
        c=temp;
    }
    if(b>c)
    {
        temp=b;
        b=c;
        c=temp;
    }
    //输出排序后的三个数
    printf("%d %d %d ",a,b,c);
    return 0;
}


 

0.0分

13 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区

#include<stdio.h>
int main()
{
    int a,b,c,t;
    scanf("%d %d %d",&a,&b,&c);
    if(a>b)
    {
        t=a;
        a=b;
        b=t;
    }
    if(a>c)
    {
        t=a;
        a=c;
        c=t;
    }
    if(b>c)
    {
        t=b;
        b=c;
        c=t;
    }
    pritnf("%d %d %d".a,b,c);
    return 0;
} 请问为什么我这个不对呀?
2023-03-01 23:11:35
#include<stdio.h>
#include "string.h"
int main(){
    int a[3],i,min,j,t,k;
    for(i=0;i<3;i++){
        scanf("%d",&a[i]);
    }

    for(i=0;i<3;i++){
        min=i;
        for(j=i;j<3;j++){
            if(a[j]<a[min]){
                min = j;
            }
        }
        if(min!=i){
            t = a[min];
            a[min] = a[i];
            a[i] = t;
        }
    }

    for(i=0;i<3;i++){
        printf("%d ",a[i]);
    }
}

选择排序的一种解法va
2022-07-15 15:07:34
  • «
  • 1
  • »