#include<iostream.h>
#include<fstream.h>
class MyClass
{
int a[5];
public:
void getdata(){
//利用for循环输入值
int i;
fstream f;
for(i=0;i<5;i++){
cout<<"NO."<<i+1<<"的值:";
cin>>a[i];
if(sushu(a[i]))
{
cout<<"是素数!!";
//追加写文件;
f.open("shusu.txt",ios::out|ios::app);
f.write((char *)&a[i],sizeof(myclass));
f.close();
}
}
bool sushu(int t){
//判断t是不是素数,是的话返回true,否则返回false
for(int i=2;i<t-1;i++)
{
if(t%i=0)
break;
}
if(t=n)
return true;
else
return false;
}
};
void main(){
MyClass m;
char ch='y';
do{
m.getdata ();
do{
cout<<"继续吗?"; cin>>ch;
}while(ch!='y' && ch!='n');
}while(ch=='y');
}
请帮我看一下这段代码那里错了?
答案:2 悬赏:0 手机版
解决时间 2021-07-26 10:36
- 提问者网友:皆是孤独
- 2021-07-25 11:28
最佳答案
- 五星知识达人网友:廢物販賣機
- 2021-07-25 12:04
在for循环输入的时候少了一个};后面有个地方MyClass写成了myclass;t=n的n没有定义,==写成了=。我稍稍修改了下MyClass:
class MyClass
{
int a[5];
public:
void getdata(){
//利用for循环输入值
int i;
fstream f;
for(i=0;i<5;i++){
cout<<"NO."<<i+1<<"的值:";
cin>>a[i];
if(sushu(a[i]))
{
cout<<"是素数!!";
//追加写文件;
f.open("shusu.txt",ios::out|ios::app);
f.write((char *)&a[i],sizeof(MyClass));
f.close();
}
}
}
bool sushu(int t){
//判断t是不是素数,是的话返回true,否则返回false
for(int i=2;i<t-1;i++)
{
if(t%i==0) return false; // 这里直接return false,因为已经可以判断其不是素数
}
return true; // 都遍历完了 说明可以确定是素数,直接返回true
}
};
其他地方都没有错。。
全部回答
- 1楼网友:迟山
- 2021-07-25 13:12
在sushu() 方法中if(t=n) return true; 我怎么没看懂n是从哪里来的,没定义吧,还有if(t%i=0)
该写成if(t%i==0),注意区分= 和==
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯