Q1
本題要求實作一個swap函數,swap函數接收3個引用類型的參數,可交換3個整數a,b,c的值。将a的值存入b,b的值存入c,c的值存入a, 并且傳回三個整數中最大的數的值。例如a,b,c的值為1,2,3,則交換後,a,b,c的值為3,1,2,所傳回的值為3。
在主函數中聲明三個變量 a, b, c并指派。a的值為1, b為2, c為3
本程式無需鍵盤輸入
題目内容:
在主函數中聲明三個變量 a, b, c并指派。a的值為1, b為2, c為3;
以a、b、c作為實參,調用swap函數;
最後輸出a、b、c三個整數中最大的值,以及三個整數;
變量定義時均應賦初值0
不得使用C語言中的輸入輸出函數
函數接口定義:
int swap ( int& x, int& y, int& z); //三個參數均為引用類型
swap()函數接收3個引用類型的參數,可交換3個整數a,b,c的值。将a的值存入b,b的值存入c,c的值存入a。
swap()在交換三個整數的值後,傳回x,y,z中最大的數的值
輸入格式:
無需輸入
輸出格式:
用單個空格分隔的四個整數
最大數 a的值 b的值 c的值
輸入樣例:
輸出樣例:
3 3 1 2
說明:
第1個3是輸入的三個數的最大值,
第二個3是交換後a的值,
1是交換後b的值,
2是交換後c的值
注意1:輸出的最後一個整數之後沒有空格,也沒有換行
注意2:
在主函數中,不要使用
cout << swap(a,b,c) << a << b << c;
這種連續輸出的語句,會産生副作用。
要将函數的調用單獨作為一條語句,不要與輸出語句放在一起。

Q2
本題要求實作一個swap函數,swap函數接收3個引用類型的參數,可交換3個整數a,b,c的值。
将a的值存入b,b的值存入c,c的值存入a, 并且傳回三個整數中最大的數的值。例如a,b,c的值為1,2,3,則交換後,a,b,c的值為3,1,2,所傳回的值為3。
a b c 的值需要從鍵盤輸入。
題目内容:
在主函數中一次讀入三個整數的值存入a、b、c中(使用std::cin);
以a、b、c作為實參,調用swap函數;
最後輸出a、b、c三個整數中最大的值,以及三個整數;
變量定義時均應賦初值0
不得使用C語言中的輸入輸出函數
函數接口定義:
int swap ( int& x, int& y, int& z); //三個參數均為引用類型
swap()函數接收3個引用類型的參數,可交換3個整數a,b,c的值。将a的值存入b,b的值存入c,c的值存入a。
swap()在交換三個整數的值後,傳回x,y,z中最大的數的值
輸入格式:
空格分隔的三個整數
整數1 整數2 整數3
輸出格式:
用單個空格分隔的四個整數
最大數 a的值 b的值 c的值
輸入樣例:
1 2 3
輸出樣例:
3 3 1 2
說明:
第1個3是輸入的三個數的最大值,
第二個3是交換後a的值,
1是交換後b的值,
2是交換後c的值
注意1:輸出的最後一個整數之後沒有空格,也沒有換行
注意2:你在編寫時,不能使用類似下面的代碼輸入資訊:
auto a {2};
cin >> a;
上面兩行代碼用在系統中會導緻編譯錯誤。
解決辦法是:變量定義的語句中,不能同時出現 auto 和清單初始化方式。要麼将上面第一行代碼改為 int a {2};要麼将其改為 auto a = 2;
注意3:
在主函數中,不要使用
cout << swap(a,b,c) << a << b << c;
這種連續輸出的語句,會産生副作用。
要将函數的調用單獨作為一條語句,不要與輸出語句放在一起。
(以下均為碎碎念部分)
起初讀題沒讀透,并沒有利用swap函數傳回三個整數中最大數的值,然而結果是正确的hhhh,運作過後在用例二被扣掉四分,怎麼也找不到原因所在。後來才發現這個問題的😢