C++ 程式演示宏函式
假設我們給定一個包含多個整數值的整數陣列。我們必須找出陣列中最小值和最大值之間的差值。為了解決這個問題,我們必須使用宏。輸入來自標準輸入,結果列印回標準輸出。
因此,如果輸入類似於陣列 = {120, 589, 324, 221, 234},則輸出將是答案為:469
最大值 589 和最小值 120 之間的差為 469。
為了解決這個問題,我們將按照以下步驟操作 −
- mini := 無窮大
- maxi := 負無窮大
- 對 v 中的每個 i 執行以下操作:
- 如果 mini > v[i],則
- mini := v[i]
- 如果 maxi < v[i],則
- maxi := v[i]
- 如果 mini > v[i],則
- ans := maxi - mini
- 列印(ans)
示例
讓我們看以下實現,以獲得更好的理解 −
#define minmac(a, b) a = min(a, b)
#define maxmac(a, b) a = max(a, b)
#define INF ((1 << 31)-2)
#define input(a) cin >> a
#define toStr(a) string("The answer is :")
#define FOO(a, b)
#define foreach(a, b) for (int i = 0; i < a.size(); ++i)
#include <iostream>
#include <vector>
using namespace std;
FOO(minmac, <)
FOO(maxmac, >)
int main(){
int n; cin >> n;
vector<int> v(n);
foreach(v, i) {
input(v)[i];
}
int mini = INF;
int maxi = -INF;
foreach(v, i) {
minmac(mini, v[i]);
maxmac(maxi, v[i]);
}
int ans = maxi - mini;
cout << toStr(The answer is :) <<' '<< ans;
return 0;
}輸入
5 120 589 324 221 234
輸出
The answer is : 469
廣告
資料結構
計算機網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP