三個數排序,只用if
#include <stdio.h> int main() { int a,b,c,d,e,f,g; scanf("%d %d %d",&a,&b,&c); if(a>b&&a>c)d=a; if(b>a&&b>c)d=b; if(c>a&&c>b)d=c; if(d>a&&d>b){e=a;f=b;} if(d>a&&d>c){e=a;f=c;} if(d>b&&d>c){e=b;f=c;} if(e<f){g=e;e=f;f=g;} printf("%d %d %d",d,e,f); return 0; }
朋友問的問題,只用if怎麼比較三個數,用迴圈很簡單,用if就麻煩了。
這是我經過多次邏輯錯誤後,改出來的完善程式碼,不知各位有更精簡的辦法嗎?
相關推薦
三個數排序,只用if
#include <stdio.h> int main() { int a,b,c,d,e,f,g; scanf("%d %d %d",&a,&b,&c); if(a>b&&a>c)d=a; if(b>a&&
c語言 用if將三個數排序
這是我的第一個部落格,不完善之處懇請指出。 這次是通過if排序 #include <stdio.h> void main() { int a,b,c,t;/*定義三個數為整數,t為中間變數*/ printf("input a,b,c=\n");/*提示輸入三個數*/ s
南陽理工acm,三個數排序
描述 現在要寫一個程式,實現給三個數排序的功能 輸入 輸入三個正整數 輸出 給輸入的三個正整數排序 樣例輸入 20 7 33 樣例輸出 7 20 33 #include<stdio.h> int main() { int a,b,c,x
三位數排序,陣列排序
三位數簡單排序 給三位數進行排序,三位數排序應該是很簡單的,還是用了一天多的時間,總共掌握了兩種方法,一種是簡單的常規排序,就是每個數都比較一次,然後寫出結果,以下是第一種方法: public class Count { /** * 給出三位數,進行三位數排序
讀取檔案內的資料(數字)並進行三種排序,1(快速排序)2(歸併排序)3(希爾排序)。
#include<iostream> #include<fstream> #include<stdlib.h> int n1=0; using namespace std; void Merge(int a[], i
三個數排序
輸入三個數,並從大到小輸出。 #include <stdio.h> #include <stdlib.h> int main() { int a,b,c,max,min; scanf("%d %d %d",&a,&b,&c)
Java程式設計練習1——求三個數大小,一百個數的和
1.求三個數中最小值和最大值 思路1:先定義兩個值min和max賦值給a,然後再將b和c與a進行比較即可 package Hello; public class test { public static void main(String[] args) { in
C語言 指標方法實現三個數排序
題目描述 輸入3個數a,b,c,按大小順序輸出。利用指標方法 輸入 輸入三個數 輸出 按照從大到小的順序輸出 #include<stdio.h> int main() {
C用交換函式實現三個數排序
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void swap(int *m,int
C語言實驗——三個數排序
Problem Description 輸入三個整數x,y,z,請把這三個數由小到大輸出。 Input 輸入資料包含3個整數x,y,z,分別用逗號隔開。 Output 輸出由小到大排序後的結果,用空格隔開。 Example Input 2,1,3 Example
C語言,輸入abc三個整數,並從大到小排序輸出和“找出三個數中最大的數”的中間變數的用法的區別
共同點:都是中間變數,都可以重複拿來做中轉站使用 不同點:排序的題目中,中間變數只是做中轉站作兩個變數交換值用來,並不是要用來儲存最終要輸出的值 而找出最大數或者最小數的題目中,中間變數不但做交換用的中轉站,還要儲存程式最終要輸出的值
求逆序對個數的三種方法(歸併排序,樹狀陣列,權值線段樹)
求逆序對個數的三種方法 逆序對: 對於一個序列 a1a_1a1,a2a_2a2,a3a_3a3…ana_nan,如果存在aia_iai>aja_jaj且i<j,則aia_iai和aja_jaj為一個逆序對。 這裡將介紹3種求逆序對對數
編寫程式實現以下功能: 隨機產生20個正整數存入陣列a中,且每個數均在1000-9999之間(包含1000和9999)。對陣列進行排序,要求按每個數的後三位的大小進行升序排列,然後取出滿足此條
<span style="font-size:24px;">int a[20] = {0};//定義一個數組 for (int i = 0; i < 20; i++) { a[i] = arc4random() % (9999 -
合並排序,將兩個已經排序的數組合並成一個數組
n) ring 一個數 合並排序 sizeof 並排 names 排序 name #include<iostream> #include<string.h> using namespace std; void MergeArray(int a[]
選取10-100之間的10個數字,存入一個數組,並排序
一個數 隨機 調用 定義 -m 函數 實現 == turn //選取10-100之間的10個數字,存入一個數組,並排序//實現該功能函數function randomNub(arr,len,min,max){ //如果給的長度大於取值範圍,則超出提示 if(len&
輸入三個數a,b,n,輸出a和b不大於n的公倍數的個數
name () 招商 int col 輸入 pac clas div 題:輸入三個數a,b,n,輸出a和b不大於n的公倍數的所有個數。 這題的思想是先求得a和b的最大公約數,然後用a和b的積除以最大公約數,得到最小公倍數,再持續加上最小公倍數,直到超過n,記下n的個數。如:
Java三種排序:冒泡,選擇,插入排序
反序 三種 blog void bubble public string length 選擇 三種排序:冒泡,選擇,插入排序 public static void bubbleSort(int[] source){ // 交換
兩個變量,不用第三個數就進行切換數值
進行 變量 方法 class span 個數 style blog body var a = 5; var b = 6; //第一種方法: a = a+b; b = a - b; a = a - b; //第二種方法: a = [a,b]; b
三種排序:快排,歸並,堆排
new swap 簡單 數組合並 col 最大 heapsort 堆排序 大神 轉自:http://www.cnblogs.com/LUO77/p/5798149.html (一)快排 快排考的是最多次的。之前看大神寫的算法很簡單,思想也很好。就一直用他的思想去思考快排
10.三個數由小到大排序
log argc scan color body adding 順序 stdio.h int 要求:輸入三個數由小到大排序#include <stdio.h> int main(int argc, char *argv[]) { int a,b,c,t