首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于计数超过极限C++的循环

用于计数超过极限C++的循环
EN

Stack Overflow用户
提问于 2021-11-10 18:22:28
回答 3查看 103关注 0票数 1

对于for循环,我有一个非常奇怪的问题。我必须做一个程序,给出三个骰子之和,它必须找到这三个骰子的所有可能组合,从而产生这个总和。问题是,循环数超过了它们的极限,我不知道为什么。

代码语言:javascript
复制
for (k1 = 1; k1 <= 6; k1++) //k1 - die 1
{
    for (k2 = 1; k2 <= 6; k2++) //k2 - die 2
    {
        for (k3 = 1; k3 <= 6; k3++) //k3 - die 3
        {
            if (k1+k2+k3 == z) //z - sum
                cout<<k1<<"-"<<k2<<"-"<<k3<<endl;
        }

        if (k1+k2+k3 == z)
            cout<<k1<<"-"<<k2<<"-"<<k3<<endl;
    }

    if (k1+k2+k3 == z)
        cout<<k1<<"-"<<k2<<"-"<<k3<<endl;
}

如果我输入16的和,这些是我得到的结果:

代码语言:javascript
复制
2-7-7
3-6-7
4-5-7
4-6-6
5-4-7
5-5-6
5-6-5
6-3-7
6-4-6
6-5-5
6-6-4

这些都是有效的结果之和为16,但我不应该有7号在骰子和骰子不应该能够得到7,因为是如何为。

我在中使用c++ 17。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-11-10 18:41:28

之所以会发生这种情况,是因为您的k2、k3变量分配得更高。

至于循环,直到它在k3=7时结束循环为止。所以,k3会保存它,当你得到它时,k3会保存它,然后循环,得到7。

您可以使用Seth Faulfner或Yksisarvinen提出的方法之一。如果您想保存值以供将来使用,请使用Seth Faulfner的代码。如果没有必要使用Yksisarvinen的代码。

票数 2
EN

Stack Overflow用户

发布于 2021-11-10 18:30:40

为什么不直接检查循环内部呢?

代码语言:javascript
复制
for (k1 = 1; k1 <= 6; k1++) //k1 - die 1
{
    for (k2 = 1; k2 <= 6; k2++) //k2 - die 2
    {
        for (k3 = 1; k3 <= 6; k3++) //k3 - die 3
        {
            if (k1+k2+k3 == z) //z - sum
                cout<<k1<<"-"<<k2<<"-"<<k3<<endl;
        }
    }
}
票数 2
EN

Stack Overflow用户

发布于 2021-11-10 19:00:26

问题是变量k3没有在最后一个for循环之外迭代。这就是问题正在发生的地方。对于您想要的结果,检查和并打印如果是真的,应该只在最后一个For循环中执行一次。

一个示例代码应该是:-

代码语言:javascript
复制
#include <iostream>
using namespace std;

int main()

{
    
int num,i,j,k;

cout<<"enter a number"<<endl;

cin>> num;

cout<<"dice combinations are "<<endl;

for(i=1;i<=6;i++)
{
    for(j=1;j<=6;j++)
    {
        for(k=1;k<=6;k++)
        {
            if(i+j+k == num)
            {
                cout<<i<<"-"<<j<<"-"<<k<<endl;
            }
        }
    }
}

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

https://stackoverflow.com/questions/69918360

复制
相关文章

相似问题

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