首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多维数组,如何一次显示else语句?

多维数组,如何一次显示else语句?
EN

Stack Overflow用户
提问于 2020-10-22 11:16:54
回答 2查看 36关注 0票数 0

我有这个由3个Matrix[3][3]组成的矩阵。我的任务是显示包含至少两个质数的矩阵的行数,我已经做了这个质数工作,但问题是,我必须显示此消息一旦cout << "No row containing at least two prime numbers" << endl;。由于迭代,如果任何一行不包含两个质数或只有一行包含两个质数,它会向我显示三次/两次。如果没有消息或有消息,我希望消息只显示一次。

质数代码..。

代码语言:javascript
复制
cout << "ROW NUMBER CONTAINING AT LEAST TWO PRIME NUMBERS" << endl;
    for (int i = 0; i < 3; i++)
    {
        Count = 0;
        for (int j = 0; j < 3; j++)
        {
            Prime = 0;
            for (int k = 2; k < Matrix[i][j]; k++)
            {
                if (Matrix[i][j] % k == 0)
                {
                    Prime = 1;
                    break;
                }
            }
            if (Prime == 0)
            {
                Count += 1;
            }
        }
        if (Count == 2)
        {
            cout << "ROW NUMBER " << i + 1 << endl;
        }
        else
        {
            cout << "NO ROW CONTAINING AT LEAST TWO PRIME NUMBERS" << endl;
        }
    }
EN

回答 2

Stack Overflow用户

发布于 2020-10-22 11:34:54

使用像标志一样的整数。

代码语言:javascript
复制
    int flag = 0;
    cout << "ROW NUMBER CONTAINING AT LEAST TWO PRIME NUMBERS" << endl;
    for (int i = 0; i < 3; i++)
    {
        Count = 0;
        for (int j = 0; j < 3; j++)
        {
            Prime = 0;
            for (int k = 2; k < Matrix[i][j]; k++)
            {
                if (Matrix[i][j] % k == 0)
                {
                    Prime = 1;
                    break;
                }
            }
            if (Prime == 0)
            {
                Count += 1;
            }
        }
        if (Count == 2)
        {
            cout << "ROW NUMBER " << i + 1 << endl;
        }
        else
        {
            flag++;
        }
    }
    if(flag == 3)
    {
        cout << "NO ROW CONTAINING AT LEAST TWO PRIME NUMBERS" << endl;
    }
票数 0
EN

Stack Overflow用户

发布于 2020-10-22 17:27:34

只需添加另一个计数变量

代码语言:javascript
复制
int row_count = 0;
for (int i = 0; i < 3; i++)
{

    ...

    if (Count == 2)
    {
        cout << "ROW NUMBER " << i + 1 << endl;
        row_count += 1;
    }
}
if (row_count == 0)
    cout << "NO ROW CONTAINING AT LEAST TWO PRIME NUMBERS" << endl;

这不是世界上最漂亮的代码,但它可以完成这项工作。

顺便说一句,至少有两个质数,所以

代码语言:javascript
复制
if (Count == 2)

应该是

代码语言:javascript
复制
if (Count >= 2)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64474765

复制
相关文章

相似问题

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