㈠ 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);/*輸出從大到小排列的數*/
}
(1)三個數比較大小排序c語言擴展閱讀
輸入三個數,比較其大小,並從大到小輸出。
#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);
}
㈡ 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);//輸出
}
(2)三個數比較大小排序c語言擴展閱讀:
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語言程序
程序有問題把
在max函數中
三個if語句的條件都為逗號表達式
逗號表達式的值為逗號表達式中最後一個表達式的值
即下面左邊的三條語句相當於右邊的三條語句
if
(x>y,x>z)
a=x; if(x>z)
a=x;
if
(y>x,y>z)
a=y; if(y>z)
a=y;
if
(z>x,z>y)
a=z; if(z>y)
a=z;
應把逗號改為&&
&&的意思是且,和;
修改後程序如下
#include<stdio.h>
void
main()
{
int
max(int
x,int
y,int
z)
;
int
a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
}
int
max(int
x,int
y,int
z)
{
int
a;
if
(x>y&&x>z)
a=x;
if
(y>x&&y>z)
a=y;
if
(z>x&&z>y)
a=z;
return(a);
}
㈣ c語言中三個數比較大小
#include<stdio.h>
//#include<windows.h>
voidmain()
{
intmax3(inta,intb,intc);
inta,b,c,result;
printf("Pleaseenterthreenumber: ");
scanf("%d,%d,%d",&a,&b,&c);
result=max3(a,b,c);
printf("Themaxofthreenumberis%d: ",result);
//system("pause");
}
intmax3(inta,intb,intc)
{
intx,z;
if(a>b)x=a;
elsex=b;
if(x>c)z=x;
elsez=c;
returnz;
}
(4)三個數比較大小排序c語言擴展閱讀
C語言:三個數由小到大排序
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inta,b,c,t;//定義4個基本整型變數a,b,c,t;
printf("Pleaseinputa,b,c:");
scanf("%d%d%d",&a,&b,&c);
//如果a大於b,藉助中間變數t實現a、b值互換;
if(a>c)
{
t=a;
a=b;
b=t;
}
//如果a大於c,藉助中間變數t實現a、c值互換;
if(a>c)
{
t=a;
a=c;
c=t;
}
//如果b大於c,藉助中間變數t實現b、c值互換;
if(b>c)
{
t=b;
b=c;
c=t;
}
printf("theorderofthenumberis: ");
printf("%d,%d,%d",a,b,c);//輸出a,b,c的值順序輸出;
system("pause");
return0;
}
㈤ c語言判斷三個數大小
方法如下:
#include<stdio.h>
//#include<windows.h>
voidmain()
{
intmax3(inta,intb,intc);
inta,b,c,result;
printf("Pleaseenterthreenumber: ");
scanf("%d,%d,%d",&a,&b,&c);
result=max3(a,b,c);
printf("Themaxofthreenumberis%d: ",result);
//system("pause");
}
intmax3(inta,intb,intc)
{
intx,z;
if(a>b)x=a;
elsex=b;
if(x>c)z=x;
elsez=c;
returnz;
}
(5)三個數比較大小排序c語言擴展閱讀:
C語言是面向過程的編程語言,用戶只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬體,且針對不同的硬體環境,在用C語言實現相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味著,對於一台計算機編寫的C程序可以在另一台計算機上輕松地運行,從而極大的減少了程序移植的工作強度。
與其他高級語言相比,C語言可以生成高質量和高效率的目標代碼,故通常應用於對代碼質量和執行效率要求較高的嵌入式系統程序的編寫。
㈥ C語言中,怎麼比較三個數的大小
比較方法:
1、比較從第一個數開始,先比較第一個數和第二個數的大小,如果第一個數大於第二個數,則將第一個數和第二個數互換;不大於(即等於或小於)則不作處理。
2、然後,再將第二個數和第三個數比較,同樣,若大於則將它們互換。
以1
2
3為例
先考慮我們所有的可能輸入類型(這里不一一列舉):1
2
3;3
2
1
;2
1
3;1
1
1;1
2
2;1
2
1;整體的思路為輸入三個數後,我們從中取兩個數,在這兩個數中選出最大的後將最大的數與第三個數做差比較這里請參考代碼理解;
代碼:
#include<stdio.h>
int
comp(int
x,int
y)
{
return
x>y?x:y;
}
int
main()
{
int
i,j,k;
int
a,b,c;
scanf("%d
%d
%d",&a,&b,&c);
j=comp(a,b);//j為兩個數里最大的值
k=c;//a+b-j求的是a,b里比較小的那個數;
if(j-k<0){printf("%d
%d
%d",k,j,a+b-j);return
0;}
//說明K最大按順序輸出就可以了1
2
3;2
2
3
if(j-k>=a+b-j){printf("%d
%d
%d",j,a+b-j,k);return
0;}//3
2
1
if(j-k<a+b-j){printf("%d
%d
%d",j,k,a+b-j);return
0;}//
3
2
3
}
總結:
其實這個代碼本質也和用if語句比較大小排序差不多,只不過這里不需要每次都調用三個if語句,直接一條if語句便可輸出答案效率更高一點。