c++打印问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 01:25:54
//求100到300之间的素数,输出一行打印5
#include <iostream>
using namespace std;
void main(){
/* int a;
* int i=0;
* for(a=100;a<=300;a++)
* {
* int b=2;
* while (b<a&&a%b!=0)
* b++;
* if(b==a)
* {i++;
* if(i%5!=0)
* cout<<a<<'\t';
* else
* cout<<a<<'\n';
* }
}*/
int a,c,n;
cout<<"输入起始数:"<<endl;
cin>>a;
cout<<"输入结尾数:"<<endl;
cin>>c;
cout<<"输入每行要求打印个数:"<<endl;
cin>>n;
for(a;a<=c;a++){
int b=2;
while(b<a&&a%b!=0)
b++;
if(b==a)
{int i=0;
i++;
if(i%n!=0)//这里?
cout<<a<<'\t';
else
cout<<a<<'\n';
}
}

}
为什么i%n!=0这里,当输入n=1的时候是每行打印1个,当输入n>1的时候,不管输入几,都是按照每行

int i=0;
这句放到最前面去,然后就一切正常了……
不然每次执行的时候,到那i就等于0了,你写法习惯相当不好!!!
至于你写n=1会一行一个的原因是
你代码里有这样一个循环
i=0;
i++
然后你又用这个i和等于1的n取余,那么永远等于0,也就永远执行else后面的了

哎呀,看错了,呵~~
一会帮你,现在忙

确实是这一步有问题int i=0; i++;总是不断的将i赋值为0,应该在前面就定义i的值为0;每次加之前,再判断是否为>n,然后再输出。
#include <iostream>
using namespace std;
void main(){
int a,c,n;
int i=0;
cout<<"输入起始数:"<<endl;
cin>>a;
cout<<"输入结尾数:"<<endl;
cin>>c;
cout<<"输入每行要求打印个数:"<<endl;
cin>>n;
for(a;a<=c;a++){
int b=2;
while(b<a&&a%b!=0)
b++;
if(b==a)
{
i++;
if(i<n)//这里?
cout<<a<<'\t';
else
{cout<<a<<'\n';
i=0;};
}
}

}
这是我改了的代码,你看看。