首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Pancake glutton“练习;如果用户输入两个或更多相等的值该怎么办

"Pancake glutton“练习;如果用户输入两个或更多相等的值该怎么办
EN

Stack Overflow用户
提问于 2019-02-11 22:00:36
回答 1查看 46关注 0票数 1

好的,在这个网站上有几个和我类似的问题,但是因为没有人和我有相同的代码,所以我的问题没有得到回答。我正在尝试自学编程,我正在做这个练习,我在网上找到了一个叫“煎饼贪吃”的练习。

所以我的问题是:使用我的代码可以完成任务的两个部分,但前提是用户不输入两个或更多人吃相同数量的煎饼,因为然后程序输出多个人吃最多/最少数量的煎饼,这并不像我希望的那样干净。我如何解决这个问题,并让我的程序有一个额外的选项,让多个人吃相同数量的煎饼?即使是一个很小的变化,比如“人x吃得最多,人y吃得最少,人z也吃得最少”对我来说就足够了..

下面是“煎饼暴食”练习:“编写一个程序,要求用户输入10个不同的人( 1人,2人,...,10人)早餐吃的煎饼数量。一旦输入了数据,程序必须分析数据并输出哪个人早餐吃的煎饼最多。

★修改了程序,使其也能输出早餐吃煎饼最少的人。“

代码语言:javascript
复制
int main(){

    cout << "Enter the number of pancakes eaten by every person." << endl;
    int personNum[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int i = 0;
    int pN1, pN2, pN3, pN4, pN5, pN6, pN7, pN8, pN9, pN10; 
    int pancakeNum[]{pN1, pN2, pN3, pN4, pN5, pN6, pN7, pN8, pN9, pN10};

    for(i = 0; i <= 9; i++){
        cout << "Person " << personNum[i] << ": ";
        cin >> pancakeNum[i];
    }

    int pancakeMax = *max_element(pancakeNum, pancakeNum+10);

    for(i = 0; i <= 9; i++){
        if(pancakeMax == pancakeNum[i]){
            cout << "Person " << personNum[i] << " ate the most 
                             pancakes (" << pancakeMax << ")." << endl;
        } 
    }

    int pancakeMin = *min_element(pancakeNum, pancakeNum+10);

    for(i = 0; i <= 9; i++){
        if(pancakeMin == pancakeNum[i]){
            cout << "Person " << personNum[i] << " ate the least 
                             pancakes (" << pancakeMin << ")." << endl;
        }
    }

    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-11 22:33:32

归根结底,这不是一个困难的算法或编程问题,而是您希望输出看起来有多复杂(这是通过适当级别的if-else函数完成的)。例如,下面我展示了一个相对简单的枚举解决方案来解决你的问题--但是,如果你想要你提供的语法复杂的输出,当有超过一个人吃得最多/最少的情况下,你需要检查if-else

关于如何修改代码的示例解决方案是(尽可能多地保留代码):

代码语言:javascript
复制
int main(){

    cout << "Enter the number of pancakes eaten by every person." << endl;
    int personNum[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int i = 0;
    int pN1, pN2, pN3, pN4, pN5, pN6, pN7, pN8, pN9, pN10; 
    int pancakeNum[]{pN1, pN2, pN3, pN4, pN5, pN6, pN7, pN8, pN9, pN10};

    for(i = 0; i <= 9; i++){
        cout << "Person " << personNum[i] << ": ";
        cin >> pancakeNum[i];
    }

    int pancakeMax = *max_element(pancakeNum, pancakeNum+10);

    cout << "The following persons ate the most amount of pancakes (" << pancakeMax << "):" << endl;
    for(i = 0; i <= 9; i++){
        if(pancakeMax == pancakeNum[i]){
            cout << personNum[i] << endl;
        } 
    }

    int pancakeMin = *min_element(pancakeNum, pancakeNum+10);

    cout << "The following persons ate the least amount of pancakes (" << pancakeMin << "):" << endl;
    for(i = 0; i <= 9; i++){
        if(pancakeMin == pancakeNum[i]){
            cout << personNum[i] << endl;
        }
    }

    return 0;

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54632223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档