kk


私信TA

用户名:bujidao

访问量:2431

签 名:

等  级
排  名 3671
经  验 1871
参赛次数 1
文章发表 11
年  龄 0
在职情况 待业
学  校 学校
专  业

  自我简介:

解题思路:

1 特殊方法,仅限于少量数字的排序。任意取三个数字中的两个数字,如果两个数字中较大的在前面,那么调换这两个数字的位子。因为只有三个数字,所以最多需要调换ab ac bc三次位置,即可实现数字从小到大输出。

2 冒泡排序法。第一个位置的与第二个位置数字比较大小,如果位置1的数字大于位置2的数字,则调换两个位子的数字。同理,此时位子2的数字与位置3的数字比较,如果位置2大于位置3的数字,则调换两个数字的位置。


参考代码:

思路一

#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;
 }
 printf("%d %d %d ",a,b,c);
 return 0;
}

思路二

#include<stdio.h>
int main()
{
 int a[3];
 int i,j,t;
 scanf("%d %d %d",&a[0],&a[1],&a[2]);
 for(j=0;j<2;j++)
 {
  for(i=0;i<2-j;i++)
  {
  if(a[i]>a[i+1])
  {
  t=a[i];
  a[i]=a[i+1];
  a[i+1]=t;
  }
  }
 }
 printf("%d %d %d",a[0],a[1],a[2]);
 return 0;
}


 

0.0分

5 人评分

  评论区

内个第二个思路的j是干啥的?
2021-02-03 10:50:15
思路一的第一个if语句,只有a和b比较,那c呢?(假定可以走第一条路径)
2020-11-02 20:51:15
  • «
  • 1
  • »