1. 程式人生 > >C語言中將三個數字進行排序的幾種寫法

C語言中將三個數字進行排序的幾種寫法

網上關於這一問題的寫法其實很多,但是很多方法不具有實際的應用價值(比如單純使用if和else語句寫出六種可能做判別),當然這也不失為一種思路,這裡僅羅列出三種具有代表性的處理方法(三目運演算法、IF比較法、和IF比較的指標寫法)

//if語句依次比較大小排序
#include <stdio.h>
int compare(int x,int y,int z)
{
    int t=0;
    if(x<y)
    {
        t=x;x=y;y=t;
    }
    if(y<z)
    {
        t=y;y=z;z=t;
    }
    if(x<y)
    {
        t=x;x=y;y=t;
    }
    printf("the number from big to small is\n %d %d %d \n",x,y,z);
}

int main()
{
    int a,b,c;
    printf("please input three numbers \n");
    scanf("%d %d %d",&a,&b,&c);
    compare(a,b,c);
    return 0;
}
//三目運算比大小
#include <stdio.h>

int max(int x,int y,int z)
{
    int max=0;
    max=x>y?x:y;
    max=max>z?max:z;
    return max;
}

int smaller(int x,int y,int z)
{
    int smaller=0;
    smaller=x<y?x:y;
    smaller=smaller<z?smaller:z;
    return smaller;
}

int middle(int x,int y,int z)
{
    int middle=0;
    middle=x+y+z-smaller(x,y,z)-max(x,y,z);
    return middle;
}

int main()
{
    int a,b,c;
    printf("please input three numbers \n");
    scanf("%d %d %d",&a,&b,&c);
    printf("the number from max to small is %d %d %d \n",max(a,b,c),middle(a,b,c),smaller(a,b,c));
    return 0;
}

//指標的使用與指標解引用
#include <stdio.h>
int compare(int *x,int *y,int *z)
{
    int t;
    if(*x<*y)
    {
        t=*x;*x=*y;*y=t;
    }
    if(*y<*z)
    {
        t=*y;*y=*z;*z=t;
    }
    if(*x<*y)
    {
        t=*x;*x=*y;*y=t;
    }
    printf("the number from big to small is\n%d %d %d \n",*x,*y,*z);
}


int main()
{
    int a,b,c;
    printf("please input three numbers \n");
    scanf("%d %d %d",&a,&b,&c);
    compare(&a,&b,&c);
    return 0;
}

相關推薦

C語言中將數字進行排序寫法

網上關於這一問題的寫法其實很多,但是很多方法不具有實際的應用價值(比如單純使用if和else語句寫出六種可能做判別),當然這也不失為一種思路,這裡僅羅列出三種具有代表性的處理方法(三目運演算法、IF比較法、和IF比較的指標寫法)//if語句依次比較大小排序 #include

C語言交換兩變數數值的方法

因為經常見到這類題目,就自己總結了以下幾種辦法 1. 建立中間變數 這是最快也是最簡單的辦法,例如: #include<stdio.h> int main() { int a=10; int b=20; i

數字進行降序排列-----java練習題

package com.test; import java.util.Scanner; /* 題目:鍵盤輸入輸入三個整數,並對三個數字進行降序排列。 */ public class Test2 {

Prog.C語言 題目:兩乒乓球隊進行比賽

兩個乒乓球隊進行比賽,各出3人。  甲隊為A,B,C 3人,乙隊為X,Y,Z 3人。已抽籤決定比賽名單。  有人向隊員打聽比賽的名單,A說他不和X比,C說他不和X,Z比,  請程式設計序找出3隊賽手的名單。 演算法實現  void tableTennisMatch(

C語言比較整數大小

三個數比大小:#include <stdio.h>int main(){int a,b,c;scanf("%d %d %d", &a, &b, &c);int max

C語言實驗——整數和、積與平均值

Problem Description 給出三個整數,請你設計一個程式,求出這三個數的和、乘積和平均數。 Input 輸入只有三個正整數a、b、c。 Output 輸出一行,包括三個的和、乘積、平均數。 資料之間用一個空格隔開,其中平均數保留小數後面兩位。 Sam

C語言從stdin讀取一行字串的方法

C語言從stdin讀取一行字串的幾種方法 gets gets函式的標頭檔案是<stdio.h>,原型如下: char *gets(char *s); gets從stdin中讀入一行內容到s指定的buffer中,當遇到換行符或EOF時讀取結束。讀取成功時,返

c語言學習筆記:字串常見的函式

首先在使用字串函式時請務必匯入#include<string.h>1.strlen:獲取當前字串的長度。2.strcpy:拷貝字串到另一個字串。如strcpy(A,B);其中A和B分別代表兩個字串變數,此方法的意思是copy字串B到A,第一個引數是目標地址,第二個

C語言輸入函式作為迴圈條件的用法

C語言有  scanf()、gets()、getchar()、getc()、fscanf()、fgets()等函式 接受使用者的輸入。可以利用它們的返回值做迴圈的條件表示式。 1.scanf() 如果成功 返回引數的個數     int value;     float c

C/C++程式設計題開頭字串、資料輸入寫法

1、題設 在IT公司程式設計題中,多數會讓你一併寫上測試資料輸入和結果輸出的Demo,這也是程式設計師基本的功底。想一想如果連自己的測試資料都無法給入,後面的演算法寫的再好,也無法測試它的準確性和效果

C語言】利用選擇法進行從小到大排序

選擇法思路: 取其中的最大值與最後一個數進行交換 假設一共有6個數組,我們用選擇法進行從小到大的排序; 6,5,4,2,3,1 第一次: 【6,5,4,2,3,1】->> 【1,5,4,2,3,6】 第二次:【1,5,4,2,3】,6 ->>【1

c語言實現兩陣列中的內容進行交換。(陣列一樣大)

方法一:建立新的陣列。 #include<stdio.h> #include<stdlib.h> int main() { int arr1[5] = { 1, 2, 3, 4, 5, }; int arr2[5] = { 0, 6, 7, 8, 9, }

C語言中將數字轉換為字串的方法

C語言提供了幾個標準庫函式,可以將任意型別(整型、長整型、浮點型等)的數字轉換為字串。以下是用itoa()函式將整數轉換為字串的一個例子: # include <stdio. h> # include <stdlib. h> void main (vo

C語言實驗——個數排序

Problem Description 輸入三個整數x,y,z,請把這三個數由小到大輸出。 Input 輸入資料包含3個整數x,y,z,分別用逗號隔開。 Output 輸出由小到大排序後的結果,用空格隔開。 Example Input 2,1,3 Example

C語言:利用函式法進行冒泡法排序

題目來源:大工慕課 連結 作者:Caleb Sung 參考程式碼 #include<stdio.h> #include<stdlib.h> #include<ti

Untiy-->C# 氣泡排序與不用第變數實現排序

using UnityEngine; using System.Collections; public class pppp : MonoBehaviour { public int[] a = {2,3,1,4,6,7,8,9,0}; // Use this for

C語言個數從大到小排序

#include <stdio.h> int main() { double a = 0.0, b = 0.0, c = 0.0; double t = 0.0; printf("輸

JS實現輸出一個字符串中第一連續的數字

數字 length 個數字 pri split ret () 第一個 spl 問題描述:在一個字符串中,輸出其中第一個連續的三個數字。例如:str="1234568" 輸出:1 2 3。   var printNum = function(){     var str =

LR中用C語言比較兩字符串變量

nat [] 變量 end put tar 字符串 init rmi 以下腳本,定義兩個一樣的字符數組,對比後,打印出result的值: Action() { int result; char string1[] = "We can see the st

深入淺出數據結構C語言版(19)——堆排序

-- 解決辦法 訪問 nsf 可能 bre 操作 數據塊 src   在介紹優先隊列的博文中,我們提到了數據結構二叉堆,並且說明了二叉堆的一個特殊用途——排序,同時給出了其時間復雜度O(N*logN)。這個時間界是目前我們看到最好的(使用Sedgewick序列的希爾排序時間