为什么它样例输不出来呀(语言-c++)

#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
    int a,b,c,d,e,f,g,h;
    int n,sum=0;
    cin>>n;
    for(a=1;a<=5;a++){
        for(b=1;b<=5;b++){
            for(c=1;c<=5;c++){
                for(d=1;d<=5;d++){
                    for(e=1;e<=5;e++){
                        for(f=1;f<=5;f++){
                            for(g=1;g<=5;g++){
                                for(h=1;h<=5;h++){
                                    
                                    if(a+b+c+d+e+f+g+h==n){
                                        sum++;    
                                            
                                    }
                                    }
                                    
                                }
                            }
                        }
                    }
                }
            }
        }
        int count=1;
        for(a=1;a<=5;a++){
        for(b=1;b<=5;b++){
            for(c=1;c<=5;c++){
                for(d=1;d<=5;d++){
                    for(e=1;e<=5;e++){
                        for(f=1;f<=5;f++){
                            for(g=1;g<=5;g++){
                                for(h=1;h<=5;h++){
                                    
                                    if(a+b+c+d+e+f+g+h==n&&count<=5){
                                        count++;
                                        cout<<a<<b<<c<<d<<e<<f<<g<<h;
                                    }
                                        
                                    }
                                    
                                }
                            }
                        }
                    }
                }
            }
        }
        cout<<sum<<endl;
                                        return 0;
        
    }
    

你弄这么多层循环时想干啥?

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7520372
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:找出数组中重复的数据c++实现
  • 除此之外, 这篇博客: 数据结构——优先队列c++详解中的 模板参数  部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    优先队列有三个参数,其声明形式为:

    priority_queue< type, container, function > 名称

    后两个是可以省略的,就是按照默认(降序)来的,第一个必须写。

    其中:

    • type:数据类型;
    • container:实现优先队列的底层容器;
    • function:元素之间的比较方式;

    对于container,要求必须是数组形式实现的容器

    在STL中,默认情况下(不加后面两个参数)是以vector为容器,以 operator< 为比较方式,所以在只使用第一个参数时,优先队列默认是一个最大堆,每次输出的堆顶元素是此时堆中的最大元素。

  • 您还可以看一下 高升老师的零基础C++程序设计课程中的 运算符重载-输入输出流小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    对不起,您没有提供具体的问题,我无法为您提供解决方案。请提供更具体的问题描述。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^