c++,找不出来问题啊,各位帮我看看吧


#include<iostream>
using namespace std;

int main() {
    //2. 求 1000 以内质数中个位加十位加百位之和最大的那个数
    int x = 0,a=0,b=0,c=0,he=0,j;
    for (int i = 1000; i >2; i--) {
        for (j = 2; j <= i; j++) {
            if (i % j == 0)
            {
                break;
            }
        }
            if (i == j) {
                c = i % 10;
                b = i % 100/10;
                a = i / 100;
                he = a + b + c;
                if (he > b)
                {
                    b = he;
                    x = i;
                }
            }
    }
        cout << "最大的数为:" << x<<endl;
        cout << "和为:" << b<<endl;
    return 0;
}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/749514928476194.png "#left")

img

你的图片没有成功展示出来,重发图片

加一下打印就知道了,增加一个tmp做临时数据的承接。he和tmp做对比即可。
最大的数为:997
和为:25


#include<iostream>
using namespace std;
 
int main() {
    //2. 求 1000 以内质数中个位加十位加百位之和最大的那个数
    int x = 0,a=0,b=0,c=0,he=0,j,tmp;
    for (int i = 1000; i >2; i--) {
        for (j = 2; j <= i; j++) {
            if (i % j == 0)
            {
                break;
            }
        }
            if (i == j) {
                c = i % 10;
                b = i % 100/10;
                a = i / 100;
                cout << "数:" << i<<endl;
                tmp = a + b + c;
                cout << "数:" << he<<endl;
                if (tmp > he)
                {
                    he = tmp;
                    x = i;
                }
            }
    }
        cout << "最大的数为:" << x<<endl;
        cout << "和为:" << he<<endl;
    return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

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