#include<iostream>
using namespace std;
class Number{
public:
Number()
{cout_data=https://bbs.csdn.net/topics/0;
}
int isprime(int x);
void fund();
void print();
private:
int datd[50][4];
int cout_data;
};
int Number::isprime(int x)
{
int m;
if(x==2)
return 1;
for(m=2;m<x;m++)
{if(x%m==0)
{return 0;
}
else return 1;
}
void Number::fund()
{
int j=1,m=0,a,b,c;
for(a=1;a<=28;a++)
{
if(isprime(a))
{
for(b=a+1;b<=29;b++)
{if(isprime(b))
{for(c=b+1;c<=30;c++)
{if(isprime(c))
{int d=a+b+c;
if(isprime(d))
{
for(;m<j;m++)
{
datd[m][1]=a;
datd[m][2]=b;
datd[m][3]=c;
datd[m][0]=d;
cout_data++;
}
j++;
}
}
}
}
}
}
}
}
void Number::print()
{
int m,j;
cout<<"素數一共有:"<<cout_data<<"個三元組滿足條件";
for(m=0;m<cout_datd;m++)
{cout<<"(";
for(j=1;j<4;j++)
{cout<<datd[m][j]<<", ";
}
cout<<"):"<<datd[m][0]<<endl;}
}
int main()
{
Number s;
s.fund();
s.print();
return 0;
}
uj5u.com熱心網友回復:
好精致的排版,讓人不忍下手修改.uj5u.com熱心網友回復:
int Number::isprime(int x)for回圈后少了個大括號,for的意義何在?執行一次就回傳了啊
uj5u.com熱心網友回復:
int Number::isprime(int x){
int m;
if(x==2)
return 1;
for(m=2;m<x;m++)
{
if(x%m==0)
return 0;
else
return 1;
}
} ←這里少了個大括號
void Number::fund()
uj5u.com熱心網友回復:
你的演算法問題大大的哈。1, 程式應該是求素數問題,但是你這一下子就來個4個回圈;
2, #3樓是正確的。
3, 陣列datd[50][4]感覺怪怪的。data?
4, 函式void Number::print()中,cout_datd應該是cout_data吧?
5, 按照3樓修改后,運行時出現例外,因為陣列datd[m][1]中的m超出陣列本身大小了,尤其回圈中m在變,j也在變,感覺有問題。
uj5u.com熱心網友回復:


復制進VS,解決.
uj5u.com熱心網友回復:


復制進VB,然后解決
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/55019.html
標籤:C++ 語言
上一篇:goweb-http協議
