当前位置:编程学习 > C/C++ >>

这个C++错在哪??学生党求指教。

写一个判别素数的函数,在主函数输入一个整数,输出该数是否是素数的信息

 

 

 

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{int i,j,k,l;
bool prime ;
cout <<"请输入一个整数:"<<endl;
cin >>i;
j=sqrt((i));
for( k=2;k<=j;k++)
  if(i%k==0)
  {
 
  cout <<"这个数不是素数。"<<endl;
break;
  }
  else
  {
   cout <<"这个数是素数。"<<endl;
break;
  }
  cout <<endl;
  return 0;
}

追问:为什么要判断呢。。。。。  = =

答案:#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{int i,j,k,l;
bool prime ;
cout <<"请输入一个整数:"<<endl;
cin >>i;
j=(int)sqrt(i);
for( k=2;k<j;k++)
  if(i%k==0) break;
 
 if(k>=j)
 
  cout <<"这个数是素数。"<<endl;
 else
   cout <<"这个数不是是素数。"<<endl;
 
  cout <<endl;
  return 0;
}
。。。。错大发了。
循环里的if无论成立与否都有break;
这样循环只能被运行1次,完全没有意义了
else中不应该有break
在循环结束后判断下k是否大于j
k>j表示i是素数,否则不是素数
程序没有报错啊?  你运行有啥问题》?

上一个:想学C++ 有什么书推荐 基础点的
下一个:C++程序- -学生信息管理系统

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,