各位大侠帮我看一下下面的C++程序有什么逻辑错误吗?怎么运行不了啊(按回车键没反应)谢谢了

2025-06-21 14:23:37
推荐回答(3个)
回答1:

bool prime(int a)
{ bool k;
int i,r;
if(a==1){k=false;}
if(a==2){k=true;}
for(i=2;i<=a-1;i++)
{ r=a%i;
k=true;
while(r==0)
{k=false;}
}
return k;
}

这段 写的不想说
while(r==0)
{k=false;}根本死循环

修正
bool prime(int a)
{ bool k;
int i,r;
if(a==1){k=false;}
if(a==2){k=true;}
for(i=2;i<=a-1;i++)
{ r=a%i;
k=true;
while(r==0)
{return false;}
}
return k;

}

回答2:

最简单的,就是把prime函数中的while改成if

回答3:

你程序要实现什么功能啊,你把prime里面的while 改成if