1. 程式人生 > >C用交換函式實現三個數排序

C用交換函式實現三個數排序

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void swap(int *m,int *n)//交換函式,傳指標呼叫
{
	int t=*m;
	*m=*n;
	*n=t;
}
int main()
{
	int a;
	int b;
	int c;
	printf("請輸入三個數:");
	scanf("%d %d %d",&a,&b,&c);
	if(a<b)
	{
		swap(&a,&b);//保證a>b
	}
	if(a<c)
		{
			swap(&a,&c);//保證a>c,a是最大的數
	}
	if(b<c)
	{
		swap(&b,&c);//保證b>c
	}
	printf("這三個數由大到小依次是:%d %d %d\n",a,b,c);
	system("pause");
	return 0;
}

程式執行結果圖:

相關推薦

C交換函式實現個數排序

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void swap(int *m,int

C語言 指標方法實現個數排序

題目描述 輸入3個數a,b,c,按大小順序輸出。利用指標方法 輸入 輸入三個數 輸出 按照從大到小的順序輸出 #include<stdio.h> int main() {

【演算法】C++連結串列實現一個箱子排序附原始碼詳解

01 箱子排序 1.1 什麼是分配排序? 分配排序的基本思想:排序過程無須比較關鍵字,而是通過"分配"和"收集"過程來實現排序.它們的時間複雜度可達到線性階:O(n)。 1.2 什麼是箱子排序? 箱子排序是分配排序的一種,箱子排序也稱桶排序(Bucket Sort),其基本思想是:設定若干個箱子,依次掃描待

c語言 if將個數排序

這是我的第一個部落格,不完善之處懇請指出。 這次是通過if排序 #include <stdio.h> void main() { int a,b,c,t;/*定義三個數為整數,t為中間變數*/ printf("input a,b,c=\n");/*提示輸入三個數*/ s

C語言:使用函式實現個數交換

此題的解決思路為:建立一個Swap函式,引數為a和b,函式內部建立一個臨時變數tmp,用於交換兩個數。 但需要注意的是:函式傳參的過程中需要注意,形參是實參的一份臨時拷貝,形參的改變不會影響實參,所以此時函式傳參的時候需要傳遞實參的地址(&a),即傳址呼叫,在接收部

指標實現個數交換排序

#include <stdio.h> int main() { void exchange(int *q1,int *q2,int *q3); int a,b,c,*p1,*p2,*p3; scanf("%d %d %d",&a

C 使用函式實現個數交換

1.程式程式碼 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <Windows.h> int change_num(int *n1, int *n2)

c語言位運算實現個數平均數

c語言用位運算實現兩個數平均數 對於十進位制而言,向右移動一位就是除以10, 對於二進位制而言,向右移動一位就是除以2, 對於八進位制而言,向右移動一位就是除以8, 對於十六進位制而言,向右移動一位就是除以16 因為計算機是通過二進位制來計算的,知道這個規律之後我們可以編寫程式碼 int

[C]C語言中函式實現返回引數二進位制中 1 的個數

通過C語言程式將十進位制數轉化成二進位制數,然後求出二進位制數中1的個數。 下面用三種方法來實現。來 方法一: 除2取餘法。對一十進位制數,用2輾轉相除至結果為1,將餘數和最後的1從下向上倒序寫就是對應的二進位制。 例如:十進位制數302轉化成二進位制。 302

C語言使用memcpy函式實現個數間任意位置的複製操作

  c和c++使用的記憶體拷貝函式,memcpy函式的功能是從源src所指的記憶體地址的起始位置開始拷貝n個位元組到目標dest所指的記憶體地址的起始位置中。   用法:void *memcpy(void *dest, const void *src, size_t n); 舉例:   char tes

使用函式實現個數交換

#include <stdio.h> void swap(int *a,int *b) { int tmp; tmp=*a; *a=*b; *b=tmp; } int main()

[c語言] 呼叫函式實現求兩個數中的最大值

#include<stdio.h>int max(int x, int y){int max = 0;if (x < y){max = y;}else{max = x;}return

輸入m個學生,每個學生有4門課,在主調函式中輸入學生的相關資訊,編寫函式: (1)求第一門課的平均分; (2)找出有兩門課以上不及格的學生,並輸出他們的學號和全部成績,要求指標函式實現:fl

  輸入m個學生,每個學生有4門課,在主調函式中輸入學生的相關資訊,編寫三個函式: (1)求第一門課的平均分; (2)找出有兩門課以上不及格的學生,並輸出他們的學號和全部成績,要求用指標函式實現:float*Search(float(*p)[4],int n); (3)找出

使用函式實現個數交換

#include<stdio.h> int swap(int *num1,int *num2) //異或方法交換 { *num1=*num1^*num2;

C語言實驗——個數排序

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

python自定義函式實現個數次方計算

python自定義函式在執行時,最初只是存在記憶體中,只有呼叫時才會觸發執行。def cube_count(a): if is_number(a): return a**3

【Unity&C#】使用?:表示式比較個數大小並對其排序

使用 ? : 表示式比較三個數大小並對其排序,C#的程式碼怎麼寫 ------------------------------------------------------------------------下面是錯誤的示範 設定A,B,C三個整型數字,使用 Rando

C++ 類封裝實現隊列

pan pub pre () turn ear als sin push 1 #include<stdlib.h> 2 #include <iostream> 3 using std::cout; 4 using std::end

遞歸實現歸並排序(不會呀 不知道哪裏錯了)

clas iostream ges sin ace logs div void 遞歸實現 #include<iostream> using namespace std; #include<vector> #include "Vector.h" v

冒泡法對10個數排序

inpu sort cout log pac ted 個數 names std #include<iostream> #include<stdlib.h> using namespace std; int main() { int a[1