c++ 如何打印出最高分和最低分以及用户输入的相应姓名?[closed]

sqserrrh  于 2022-11-19  发布在  其他
关注(0)|答案(1)|浏览(157)
    • 想要 改进 此 问题 吗 ? * * 通过 editing this post 添加 详细 信息 并 阐明 问题 。

昨天 关门 了 。
此 帖子 已 在 23 小时 前 编辑 并 提交 审阅 , 无法 重新 打开 帖子 :
原始 关闭 原因 未 解决
Improve this question

#include <iostream>
#include <string>
using namespace std;

int main() {
int score;
int max = 0;
int min = INT_MAX;
int total;
const char* d = "done";
string name;

cout << "Enter data: \n";

for(;;){
    cin >> name;

    if(name == d){
        cout << "-------" << "\n" << "Results \n" << "------- \n"
             << "Minimum: " << min
             << "\nMaximum: " << max
             << "\nTotal: " << total;
        break;
    }

    cin >> score;

    if (score > max) {
        max = score;
    }

    if (score < min) {
        min = score;
    }

    total = score + score;



    }
}

中 的 每 一 个
例如 , 用户 输入 几 个 名字 和 每个 名字 的 分数 :Chris 500 , Joe 400 , John 300 . 我要 把 我 的 代码 打印 出来 :最 大 值 : chris 500 最 小 值 :John 300 。 目前 我 只能 让 它 打印 出 最 大 值 和 最 小 值 的 值 , 而 不 是 值 前面 的 名称 。 ( 即 最 大 值 :400 个 )

pgky5nke

pgky5nke1#

我建议将for(;;)替换为while(true),并使用if中断循环,以防名称“done”

#include <iostream>
#include <string>
#include <vector>
#include <bits/stdc++.h>

using namespace std;

int main() {
  int score;
  int max = 0;
  int min = 0;
  string name;
  vector<int> scores;
    
  while(true){
    cout << "Enter name to filter. Enter all to process all records \n";
    cin>>name;
    if(name == "done"){
      cout << "-------" << "\n" << "Results \n" << "------- \n" << "Minimum: " << min <<              "\nMaximum: " << max << "\nTotal: ";
      break;
    } else {
      cout<<"Enter score \n";
      cin>>score;
      scores.push_back(score);
      max = *max_element(scores.begin(), scores.end());
      min = *min_element(scores.begin(), scores.end());
    }
  }
}

相关问题