三個數從大到小排序——函式法
先看下面一段程式碼
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num = 10;
int* p = #
*p = 20; //解引用
printf("num = %d\n", num);
system("pause");
return 0;
}
上面程式輸出值 num= 20;
再看下一段程式碼,它是不可以實現想要的結果;
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> void swap(int x, int y) { int tmp = x; x = y; y = tmp; } int main() { int a = 3; int b = 6; int c = 1; if (a < b) { swap(a, b); } if (a < c) { swap(a, c); } if (b < c) { swap(b, c); } printf("%d %d %d\n", a, b, c); system("pause"); return 0; }
原因:
(1)實參——形式引數,只是值傳遞
(2)形參是實參的臨時拷貝
(3)對形參的改變不會改變實參【如上面的函式,它僅僅實現了形參的順序改變】
(4)由上述第一段程式碼解引用可知,通過指標傳地址實現
即
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> void swap(int *px, int *py) { int tmp = *px; *px = *py; *py = tmp; } int main() { int a = 3; int b = 6; int c = 1; if (a < b) { swap(&a,&b); } if (a < c) { swap(&a,&c); } if (b < c) { swap(&b,&c); } printf("%d %d %d\n", a, b, c); system("pause"); return 0; }
相關推薦
三個數從大到小排序——函式法
先看下面一段程式碼#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int main() { int num = 10; int* p =
4比較三個數的大小輸出最大的值並從小到大排序輸出
public static void main(String[] args) { System.out.println("請輸入三個數"); Scanner scanner=new Scanner(System.in); int a=scan
用C語言 將三個數從大到小排序
#include <stdio.h> int main() { double a = 0.0, b = 0.0, c = 0.0; double t = 0.0; printf("輸
輸入三個數比較大小
nbsp lap style pri 比較大小 one closed put code 1 num1 = input("Num1:") 2 num2 = input("Num2:") 3 num3 = input("Num3:") 4 5 if num1&g
三種常見的排序算法
合並算法 合並 參考 amp 實現 insert 算法 clas 屬於 原理請參考《算法導論》 插入式排序算法實現: void insertion_sort(int *A, int length) { int i, key; for (int j = 1;
Java數據結構和算法(三):常用排序算法與經典題型
bre 操作 五步 增量排序 計算 -- clu 冒泡 i+1 常用的八種排序算法 1.直接插入排序 我們經常會到這樣一類排序問題:把新的數據插入到已經排好的數據列中。將第一個數和第二個數排序,然後構成一個有序序列將第三個數插入進去,構成一個新的有序序列。對第四
將三個數從
將三個數按從小到大輸出 #define _CRT_SECURE_NO_WARNINGS //巨集定義 #include <stdio.h> #include <windows.h> int main() { int a ,b,c,t; //定義四個整型變數,t為臨時變
習題 :任意輸入十個數按大小排序;構造簡單數學運算模組(形參和實參)
任意輸入十個數字,按從大到小的順序排列 設定減法運算模組: 設定 乘除法混合運算 模組 int num = 3*chufa(num1, num2,num3); 這裡有這句指令,將該結果擴大三倍,40->120 *通過上面兩個程式引出形參和實參的概念: 通俗的來講,
將三個數從大到小列印
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main() { int a, b, c; printf("輸入3個數:\n"); scanf("%d%d%d", &am
c語言將三個數從大到小輸出。
思路:定義三個變數,再定一個臨時變數,採用if判斷語句,按順序判斷兩兩數值的大小,按順序輸出結果即可。 #define _CRT_SECURE_NO_WARNING #include<stdio.h> #include<stdlib.h> int main(){
三個數比較大小(非陣列)
public static void sort(int a,int b,int c) { if (a > b) { if (c >
C++:比較三個數的大小,找出最大數
#include<stdio.h> void main() { int a,b,c,t; printf("請輸入三個整數並以回車結束:\n"); scanf("%d%d%d",&a,&b,
將三個數從大到小輸出
從大到小 font clas 一個 創建 nbsp tdi 每次 abc 方法一:可以假設a為最大值在比較b與c之間的大小, 在假設b為最大值比較a與c之間的大小,同理假設c得出排序。 1 #include<stdio.h> 2 int main() 3
Java鍵盤錄入三個數比較大小
/* 錄入三個資料,獲取三個數中的最大值 */ import java.util.Scanner; class ScannerTest1{ public static void ma
三個數比較大小——C語言經典題目
這道題是每一位初學C的小夥伴們的必經之路,其經典性簡直如同Hello World! 下面寫一下幾種不同的解法。 使用if語句 #include<stdio.h> int main() { int a, b, c, max;//逗號,(大/中
Java 輸入三個數比大小
1:運用三目運算子比較三個數的大小public static void main(String[] args) {Scanner sc = new Scanner(System.in);//Scanner鍵盤錄入,獲取使用者輸入的資訊System.out.println("輸
指標實現—三個數交換的排序
#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++中比較三個數的大小
/*列出兩個數。比較兩個數的大小 */ #include<iostream> #include<stdlib.h> using namespace std; int main() { int x,y; cout<<"Enter x
利用指標把三個數從大到小輸出(容易出現的問題)
一個程式設計師的誕生! 下面的第一個程式是正確的做法 第二個是錯誤的做法 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>
VB作業之比較三個數的大小
下面是我編寫的程式程式碼: Private Sub Command1_Click() Dim A As Integer Dim B As Integer Dim C As Integer Dim max As Integer A = Val(T