C 语言教程 在线

1665c-exercise-example5

参考方法:

#include <stdio.h>
void swap(int *a,int *b){   //*a代表指针变量a,a存储的是地址,*a是地址的值
    int temp;
    temp=*a;
    *a=*b;
    *b=temp;
}

int main(){
    int x,y,z;
    printf("请输入三个数字:\n");
    scanf("%d%d%d",&x,&y,&z);
    if(x>y)
        swap(&x,&y);
    if(x>z)
        swap(&x,&z);
    if(y>z)
        swap(&y,&z);
    printf("从小到大排序:%d %d %d\n",x,y,z);
    return 0;
}

1664c-exercise-example5

参考方法:

#include<stdio.h>
int main(void)
{
    int x,y,z,temp,min,max;
    printf("请输入三个数字:\n");
    scanf("%d%d%d",&x,&y,&z);
    temp = x < y? x : y;
    min = temp < z? temp : z;
    temp = x < y? y : x;
    max = temp < z? z : temp;
    printf("从小到大排序:");
    printf("%d%3d%3d",min,x + y + z - min - max,max);
    return 0;
}

1663c-exercise-example5

简化代码如下:

#include <stdio.h>

int main()
{
    int a,b,c;
    printf ("输入三个整数:");
    scanf ("%d%d%d",&a,&b,&c);
    if (a>b&&a>c)/* 当第一个数(a)为最大时,直接输出 a */
        ;
    else 
        a=(b>c) ? b : c; /* 当 a 不为最大数时,将剩下两数中最大的数赋值给 a*/
    /* 输出 a 值(中间的 _?_:_ 为三目运算,指判断第一个表达式的真假,若第一个表达式为真,则第二个表达式的值代表整个表达式的值,若第一个表达式为假。则第三个表达式的值代表整个表达式的值) */
    printf ("%d",a);
    return 0;
}

1662c-exercise-example5

三目运算法

#include "stdafx.h"

//题目:输入三个整数x,y,z,请把这三个数由小到大输出。
int _tmain(int argc, _TCHAR* argv[])
{
    int num1,num2,num3;
    int max, min,mid;
    printf("请输入三个数字:\n");
    scanf_s("%d%d%d", &amp;num1, &amp;num2, &amp;num3);

    max = num1&gt;num2 ? num1:num2;
    max = max&gt;num3 ? max:num3;

    min = num1&lt;num2 ? num1:num2;
    min = min&lt;num3 ? min:num3;

    mid = (num1!=max &amp;&amp; num1!= min) ? num1:num2;
    mid = (mid!=max &amp;&amp; mid!= min) ? mid:num3;

    printf_s("从小到大排序:%d &nbsp;%d &nbsp;%d",min,mid,max);

    return 0;
}
return 0;}

1661c-exercise-example5

参考方法:

#include<stdio.h>

int max(int,int);
int min(int,int);
int main()
{
    int x,y,z,max0,max1,max2,min0,min1,min2;
    printf("Please enter three number(1,2,3): ");
    scanf("%d,%d,%d",&x,&y,&z);
    max0=max(x,y);min0=min(x,y);
    max1=max(max0,z);min1=min(max0,z);
    max2=max(min0,min1);min2=min(min0,min1);
    printf("The last is: %d,%d,%d",min2,max2,max1);
}
int max(int a,int b){
    int temp,num;
    if(a>b)
    {
        num=a;
    }else{
        num=b;
    }
    return num;
}

int min(int a,int b){
    int temp,num;
    if(a<b)
    {
        num=a;
    }else{
        num=b;
    }
    return num;
}