1. 程式人生 > >零基礎學c語言之比較數

零基礎學c語言之比較數

inf 比較大小 bubuko 輸出最大值 根據 過多 圖片 turn 簡單的

我們通常會遇到比較幾個數的大小的問題。具體來說是比較大小後將兩個數交換,但是有人通過if(a>b)[printf("%d",a)} else {printf("%d",b)}的方式避開來數字交換的步驟,但那不是適合於比較多個數,在c語言中我們通常用比較後交換數值來將數字按大小排序。交換就像將兩個杯子裏的不同液體交換,需要哪一個空杯子來裝第一杯液體,然後將第二杯液體倒在第一個空杯子中,再將取來的杯子中的液體倒在第二杯中。這樣這兩個杯子中的液體就相互交換了。一個簡單的代碼說明。

#include<stdio.h>
int main()
{
  int a,b,t;
  printf("輸入兩個數,它們將從小的大排列:");
  scanf("%d,%d",&a,&b);
    if(a>b){
    t=a;
    a=b;
    b=t;
    }
  printf("%d,%d\n",a,b);
  return 0;
}

也可以將關系符換一下求從大到小的數,主要是弄請引入的變量t的意義。再來一個列子比較三個數的大小,並輸出。技術分享圖片

  • #include<stdio.h>
  • int main()
  • {
  • int a,b,c,t;
  • printf("請輸入3個整數");
  • printf("它們將會從小到大輸出:");
  • 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("a=%d,b=%d,c=%d",a,b,c);
  • return 0;
  • }

也可以通過if_else形式

#include<stdio.h>
int main()
{
int a,b,c;
printf("請輸入3個整數");
printf("將輸出最大數:");
scanf("%d,%d,%d",&a,&b,&c);
if(a<b){
if(b<c)
printf("max=%d\n",c);
else{
printf("max=%d\n",b);
}
}
else{
if(a<c){
printf("max=%d",c);
}
else{
printf("max=%d",a);
}
}
return 0;
}

或是三目運算符的方式

#include<stdio.h>
int main()
{
int a,b,c,temp,max;
printf("請輸入3個整數");
printf("將輸出最大數:");
scanf("%d,%d,%d",&a,&b,&c);
temp=(a>b)?a:b;
max=(temp>c)?temp:c;
printf("3個整數的最大數是%d\n",max);
return 0;
}

通過多種的比較發散的思維看待問題將更加的清晰明白。相同的求四個數的最大值也差不多。

#include<stdio.h>
int main()
{
int t,a,b,c,d;
printf("輸入4個整數,它們將從小的大輸出:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);
if(a>b){
t=a;
a=b;
b=t;
}
if(a>c){
t=a;
a=c;
c=t;
}
if(a>d){
t=a;
a=d;
d=t;
}
if(b>c){
t=b;
b=c;
b=t;
}
if(b>d){
t=b;
b=d;
d=t;
}
if(c>d){
t=c;
c=d;
d=t;
}
printf("排列順序如下:\n");
printf("%d %d %d %d\n",a,b,c,d);
return 0;
}

      也可以用三目運算符來求最值,具體情況根據需求。

#include<stdio.h>
int main()
{
int a,b,c,d,temp,max,end;
printf("請輸入4個整數");
printf("它們將輸出最大值:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
temp=(a>b)?a:b;
max=(temp>c)?temp:c;
end=(max>d)?max:d;
printf("最大的數是%d\n",end);
return 0;
}

如果還想求更多的數,那用目前的方法肯定是不行的,這就需要算法來幫忙了。

零基礎學c語言之比較數