本题要求将输入的任意3个整数从小到大输出。

输入格式:

输入在一行中给出3个整数,其间以空格分隔。

输出格式:

在一行中将3个整数从小到大输出,其间以“->”相连。

输入样例:

4 2 8

输出样例:

2->4->8
#include <stdio.h>
#define N 3
int main()
{
    int arr[N];
    int i=0,j=0;
    for(i=0;i<N;i++)
    {
        scanf("%d",&arr[i]);
    }
    for(i=0;i<N-1;i++)
    {
        for(j=0;j<N-1-i;j++)
        {
            if(arr[j]>arr[j+1])
            {
                arr[j]=arr[j]^arr[j+1];
                arr[j+1]=arr[j]^arr[j+1];
                arr[j]=arr[j]^arr[j+1];
            }
        }
    }  
    printf("%d->%d->%d\n",arr[0],arr[1],arr[2]);
    return 0;
}

总结

1、此题涉及排序和交换。

  1. 数据的总量为3,较小,采用最简单粗暴的冒泡排序

3、两个数据交换数值的3种方法:

  • temp = a;
       a = b;
       b = temp;
  •    a = a+b;
       b = a-b;
       a = a-b;
  •    a = a^b;
       b = a^b;
       a = a^b;
Last modification:2021 年 03 月 27 日 15 : 52 : 44