为了账号安全,请及时绑定邮箱和手机立即绑定

我想知道的是,为什么我改成下面这样就不正确了呢?

我想知道的是,为什么我改成下面这样就不正确了呢?

波斯汪 2022-06-01 14:10:56
有这么一个程序,作用是求一个数字分解成两个质数之和,我的编写是:(此编写是正确的)#include <iostream>using namespace std;int main(){int m,a,b,i,j;bool x;cin>>m;for (a=3;a<=m/2;a++){x=0;for (i=2;i<=a/2;i++){if (a%i==0)x=1;}if (x==1)continue;b=m-a;for (j=2;j<=b/2;j++){if (b%j==0)x=1;}if (x==1)continue;cout<<a<<" "<<b<<endl;}return 0;}我想知道的是,为什么我改成这样就不正确了呢?#include <iostream>using namespace std;int main(){int m,a,b,i,j;bool x;cin>>m;for (a=3;a<=m/2;a++){x=0;for (i=2;i<=a/2;i++){if (a%i==0)x=1;break;}if (x==1)continue;b=m-a;for (j=2;j<=b/2;j++){if (b%j==0)x=1;break;}if (x==1)continue;cout<<a<<" "<<b<<endl;}return 0;}注意,我只在循环语句中加入了两个break语句
查看完整描述

4 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

break 语句用于终止最近的封闭循环或它所在的 switch 语句。 控制传递给终止语句后面的语句(如果有的话)。

查看完整回答
反对 回复 2022-06-06
?
慕容森

TA贡献1853条经验 获得超18个赞

C++中break语句主要用在循环语句和switch语句中。

下面举例来说明break的用法:

1、break用在循环语句中(以for循环为例)。如:


int i;for(i=0; i<10; i++){    if(i>3)    // 如果i>3,跳出for循环,执行printf语句        break;  }printf("%d", i);

2、break用在switch语句中。如:


int i=4, a=0;switch(i){    case 1 : a++; break;  // 如果i=1,执行case 1 后面的语句,执行完后退出switch    case 2 : a+=2; break// 如果i=2,执行case 2 后面的语句,执行完后退出switch    case 4 : a+=4; break// 如果i=4,执行case 4 后面的语句,执行完后退出switch    default : a=0;  // 如果i不等于上面所以case中的值,执行default后面的语句,执行完后退出switch}


查看完整回答
反对 回复 2022-06-06
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

在c语言和c++ 中 break 语句表示跳出循环,do while for 循环,即 如果有break 语句,执行到它是,循环会终止,继续执行循环外下面的语句,且 break 是跳出最内层的循环,比如
for(int i=0 ;i<9;i++)
{
x=0;
for (int j=0 ;j<9;j++)
{
if (j==4)
break;
}
x++;
printf(”%d",x);
}

当j==4是break,跳出内层循环,继续执行x++ ...
希望能帮到你。

查看完整回答
反对 回复 2022-06-06
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

if (a%i==0)
x=1;break;
这样的语句等价于
if (a%i==0) {x=1;} break;可见break语句在第一次循环的时候就会执行。
改为if (a%i==0) {x=1; break; }就好了。这是你想要的意思。

查看完整回答
反对 回复 2022-06-06
  • 4 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信