You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C++从汇率列表生成N×N汇率矩阵并控制台输出?

生成N×N汇率矩阵并格式化输出的C++实现

核心实现步骤

  1. 矩阵初始化:按你给出的方式创建对角线元素为1的N×N矩阵(N为货币种类数)。
  2. 填充汇率数据:遍历每一对不同的货币组合,拼接"源货币/目标货币"作为键,从unordered_map中取出对应汇率填充到矩阵对应位置。
  3. 格式化输出:用setw控制列宽、setprecision控制小数位数,确保输出对齐美观。

完整示例代码

#include <iostream>
#include <unordered_map>
#include <vector>
#include <iomanip>
#include <string>

using namespace std;

int main() {
    // 初始化汇率映射与货币列表
    unordered_map<string, double> exchange_rates = {
        {"EUR/USD", 0.98},
        {"EUR/AUD", 0.88},
        {"USD/EUR", 1.22},
        {"USD/AUD", 1.09},
        {"AUD/EUR", 1.33},
        {"AUD/USD", 1.01}
    };
    vector<string> currencies = {"EUR", "USD", "AUD"};
    int n = currencies.size();

    // 初始化对角线为1的矩阵
    vector<vector<double>> matrix(n, vector<double>(n, 1.0));

    // 填充汇率数据
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (i != j) {
                string key = currencies[i] + "/" + currencies[j];
                matrix[i][j] = exchange_rates[key];
            }
        }
    }

    // 格式化输出矩阵
    // 输出表头
    cout << setw(5) << "";
    for (const string& curr : currencies) {
        cout << setw(5) << curr;
    }
    cout << endl;

    // 输出每行数据
    for (int i = 0; i < n; ++i) {
        cout << setw(5) << currencies[i];
        for (double rate : matrix[i]) {
            // 若需和示例一致显示1而非1.00,可增加整数判断逻辑
            cout << setw(5) << fixed << setprecision(2) << rate;
        }
        cout << endl;
    }

    return 0;
}

输出效果

运行代码后控制台输出:

EUR  USD  AUD
EUR  1.00 0.98 0.88
USD 1.22 1.00 1.09
AUD 1.33 1.01 1.00

注:如果需要严格匹配示例中"1"而非"1.00"的格式,可以在输出时判断数值是否为整数,再切换输出格式。

内容的提问来源于stack exchange,提问作者Udbdjfj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:42:44