#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;
}

你的图片没有成功展示出来,重发图片
加一下打印就知道了,增加一个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;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: