建立一个基于对话框,上面有二个编辑框用与输入数。m_edit1,m_edit2分别与编辑框关联。我想要在编辑框中输入二个数,把它们之间的素数全部输出来,现在的问题就是点击按纽没有任何反映,哪个位置错了啊,哪个求素数的思路是正确的,不晓得哪个位置错了,忙乎了一个晚上已没有搞出来啊。
void CMy2Dlg::OnButton1() 
{ int str1;
int str2;
UpdateData(TRUE); 
    str1=atoi(m_edit1);
str2=atoi(m_edit2);
int k;
    if(str1<str2)
{ for(int n=str1;n<=str2;n=n+2)
{
k=sqrt(n);
for(int i=2;i<=k;i++)
if(n%i==0)
break;
      if(i>=k+1)
  { CString str;
     str.Format("%d",n);
     CString str1="所求的素数为:";
     str1+=str+",";
     AfxMessageBox(str1); 
}
}
}
else
MessageBox("error");
}

解决方案 »

  1.   

    在你的onbutton1中加入断点进行调试,就可以知道是按扭不响应还是代码有错误。
      

  2.   

    int str1;
    int str2;
        UpdateData(TRUE); 
        str1=atoi(m_edit1);
    str2=atoi(m_edit2);
    int k;
    CString  str3;
    if(str1<str2)
    { for(int n=str1;n<=str2;n=n+1)
    {
    k=sqrt(n);
    for(int i=2;i<=k;i++)
    if(n%i==0)
    break;
      CString str;
          if(i>=k+1)
      { 
         str.Format("%d",n);
     str3="所求的素数为:";
         str3+=str+",";
     AfxMessageBox(str3);
     }
     }
    }
    else
    MessageBox("error");
    }