當前位置:首頁 » 編程語言 » 三個數字排序c語言不用if
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

三個數字排序c語言不用if

發布時間: 2022-11-22 18:34:20

㈠ 任意輸出3個數字 按從小到大排序輸出 c語言

思路:三個數從小到大排序可以求出三個數中的最大數和最小數,三個數的和減去最大數和最小數,差就是中間數,三個數的最值可以使用三目運算符。
參考代碼:
#include<math.h>
#include<stdio.h>
int main()
{
float a,b,c,max,min;
printf("input 3 number:\n");
scanf("%f%f%f",&a,&b,&c);
max=(a>b?a:b)>c?(a>b?a:b):c;
min=(a<b?a:b)<c?(a<b?a:b):c;
printf("output 3 number = %.2f %.2f %.2f",min,a+b+c-min-max,max);
return 0;
}
/*
輸出:
input 3 number:
12.5 98.6 0.56
output 3 number = 0.56 12.50 98.60
*/

㈡ 不要用if語句!!! C語言中三個數排序

//你好,一個簡單且完整的代碼如下:

#include<stdio.h>

int main()
{
int a = 1, b = 2, c = 3; //待排序的三個數
int max, mid , min; //用於存儲最大數,中間數,最小數

max = c>(a>b?a:b)?c:(a>b?a:b); //問號表達式找出三個數中的最大值
min = c<(a<b?a:b)?c:(a<b?a:b); //問號表達式找出三個數中的最小值
mid = a + b + c - (max + min); //將三數相加減去最大數和最小數即得中間數

printf("%d %d %d\n", max, mid, min); //從大到小排
printf("%d %d %d\n", min, mid, max); //從小到大排

return 0;
}

㈢ c語言對3個數排序之後輸出輸入a,b,c輸出排序後的結果

思路:三個數排序可以先求出最大值和最小值,最後把三個數相加減去最大值和最小值,差就是中間值。

參考代碼:

#include<stdio.h>
intmain()
{
inta,b,c,max,min;
scanf("%d%d%d",&a,&b,&c);
max=(a>b?a:b)>c?(a>b?a:b):c;
min=(a<b?a:b)<c?(a<b?a:b):c;
printf("%d%d%d",min,a+b+c-min-max,max);
return0;
}


/*
846
468
*/

㈣ 不要用if語句!!! C語言中三個數排序

//你好,一個簡單且完整的代碼如下:
#include<stdio.h>
int
main()
{
int
a
=
1,
b
=
2,
c
=
3;
//待排序的三個數
int
max,
mid
,
min;
//用於存儲最大數,中間數,最小數
max
=
c>(a>b?a:b)?c:(a>b?a:b);
//問號表達式找出三個數中的最大值
min
=
c<(a<b?a:b)?c:(a<b?a:b);
//問號表達式找出三個數中的最小值
mid
=
a
+
b
+
c
-
(max
+
min);
//將三數相加減去最大數和最小數即得中間數
printf("%d
%d
%d\n",
max,
mid,
min);
//從大到小排
printf("%d
%d
%d\n",
min,
mid,
max);
//從小到大排
return
0;
}

㈤ C語言中要把三個數從大到小排列出來應該怎麼編

初學簡單版本代碼如下:

#include<stdio.h>

int main( )

{

int a, b, c;//定義三個數的變數

int t ;//定義作為交換的變數

scanf ( "%d%d%d" , &a, &b, &c ) ; //取值

if ( a < b )

{t = a; a = b; b = t ;};//如果a,b,進行交換,反之不動

if ( a < c )

{t = a; a = c; c = t ;};//同上

if ( b < c )

{t = b; b = c; c = t ;};

printf( "%-5d%-5d%-5d " , a, b, c);//輸出

}

(5)三個數字排序c語言不用if擴展閱讀:

C語言中其他多個數排序的方法:

1、冒泡排序法

#include <stdio.h>

#define SIZE 8

void bubble_sort(int a[], int n);

void bubble_sort(int a[], int n)

{

int i, j, temp;

for (j = 0; j < n - 1; j++)

for (i = 0; i < n - 1 - j; i++)

{

if(a[i] > a[i + 1])

{

temp = a[i];

a[i] = a[i + 1];

a[i + 1] = temp;

} } }

int main()

{

int number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};

int i;

bubble_sort(number, SIZE);

for (i = 0; i < SIZE; i++)

{

printf("%d ", number[i]);

}

}

2、選擇排序

#include<stdio.h>

void main()//主函數

{

int a[10];

int i,j,w;

printf("請輸入10個數字: ");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<10;i++)

{

for(j=i+1;j<10;j++)

if(a[i]<a[j])//進行比較

//比較後進行交換

{

w=a[i];

a[i]=a[j];

a[j]=w;

}

㈥ C語言中從鍵盤上輸入三個數,將之排序後按由大到小的順序輸出

具體操作方法如下:

#include<stdio.h>

int main(void)

{int a,b,c,t;

printf("請輸入三個數");

scanf("%d%d%d",&a,&b,&c);

if(a<b)

{t=a;a=b;b=t;}

if(b<c)

{t=b;b=c;c=t;}

if(a<b)

{t=a;a=b,b=t;}

printf("從大到小:%d %d %d",a,b,c);

system("pause");

return 0;}

注意:中間的t=a;a=b;b=t,就是交換a和b的位置,總是把大的換到前面來。

(6)三個數字排序c語言不用if擴展閱讀:

c語言任意輸入5個數,並按從大到小順序輸出的方法如下:

#include <stdio.h>

#include <stdlib.h>

int main()

{int a[5];

int i,j,k;

for(i=0;i<=4;i++)

{scanf("%d",&a[i]);}

for(i=0;i<=4;i++){

for(j=0;j<=4;j++)

{if(a[i]>a[j])

{k=a[i]; a[i]=a[j]; a[j]=k;}}}

printf("排序結果是: ");

for(i=0;i<=4;i++)

{ printf("%d ",a[i]);

}return 0;

㈦ c語言編寫程序,任意三個數,由大小到排序,源代碼如何寫!

思路:任意三個數按從大到小順序輸出,可以先求出三個數中的最大值和最小值,三個數的和減去最大值和最小值的差就是中間數,接著依次輸出。

參考代碼:

#include"stdio.h"
intmain()
{
inta,b,c,max,min;
scanf("%d%d%d",&a,&b,&c);
max=a>b?a:b;
min=a<b?a:b;
if(c>max)max=c;
if(min>c)min=c;
printf("從大到小排序:%d%d%d ",max,a+b+c-max-min,min);
}
/*
運行結果:
213
從大到小排序:321
*/

㈧ C語言中三個數排序

用C語言編寫通過if將3個數排序:

#include<stdio.h>/*函數頭:輸入輸出頭文件*/

void main()/*空類型:主函數*/

{

inta,b,c,t;/*定義變數的數據類型為整型*/

printf("輸入3個數,中間用空格隔開:");/*輸出文字提示*/

scanf("%d%d%d",&a,&b,&c);/*輸入3個數字*/

if(a<b)/*判斷a是否小於b*/

{t=a;a=b;b=t;}/*是,則a、b的值互換*/

if(a<c)/*判斷a是否小於c*/

{t=a;a=c;c=t;}/*是,則a、c的值互換*/

if(b<c)/*判斷b是否小於c*/

{t=b;b=c;c=t;}/*是,則b、c的值互換*/

printf("從小到大:%d,%d,%d ",c,b,a);/*輸出從小到大排列的數*/

printf("從大到小:%d,%d,%d ",a,b,c);/*輸出從大到小排列的數*/

}

(8)三個數字排序c語言不用if擴展閱讀

輸入三個數,比較其大小,並從大到小輸出。

#include<stdio.h>

int main(){

inta,b,c;

scanf("%d%d%d",&a,&b,&c);

if(a<b){

intflag=a;

a=b;

b=flag;

}

if(a<c){

intflag=a;

a=c;

c=flag;

}

if(b<c){

intflag=b;

b=c;

c=flag;

}

printf("%d%d%d",a,b,c);

}