首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

大一新手,多谢

2013-12-13 
大一新手求救,谢谢要求把前一百个素数弄到a[]中,但是我写的这个根本就没有任何显示啊求救 #include stdio

大一新手求救,谢谢
要求把前一百个素数弄到a[]中,但是我写的这个根本就没有任何显示啊  求救 
#include <stdio.h>
void main(){
   int a[100],i,m=2,j;
   bool b1,b2;
   b2=true;
   for(i=0;i<100;i++){
   b1=true;
   while(b1){
   for(j=m/2;j>=2;j--){
   if(m%j==0)
   b2=false;}   
   if(b2){
   a[i]=m;
   b1=false;}
           m++;
   }
    
             
   }
   for(i=0;i<100;i++) printf(" s ",a[i]);
}
[解决办法]
#include <stdio.h>
void main(){
   int a[100],i,m=2,j;
   bool b1,b2;
   b2=true;
   for(i=0;i<100;i++)
{
   b1=true;
   while(b1)//一旦b2==false那么b1一直为true所以出现了死循环
{
   for(j=m/2;j>=2;j--){
   if(m%j==0)
   b2=false;}    
   if(b2){
   a[i]=m;
   b1=false;}
           m++;
   }
    
             
   }
   for(i=0;i<100;i++) printf(" s ",a[i]);



改后的代码:

#include <stdio.h>
void main()
{
   int a[100],i,m=2,j;
   bool b1,b2;
   
   for(i=0;i<100;i++)
   {
   b1=true;
   while(b1)
   {
    b2=true;
   for(j=m/2;j>=2;j--)
   {
   if(m%j==0)
   b2=false;
   }    
   if(b2)
   {
   a[i]=m;
   b1=false;
  
   }
   m++;
   }          
   }
   for(i=0;i<100;i++) 
printf(" %3d ",a[i]);

热点排行