素数c++语言_c++语言:判断素数问题(二)

原问题:c++语言:判断素数问题(二)
分类:编程开发 > 最后更新时间:【2017-02-11 18:24:56】
问题补充:

试题描述

给定 n 个(n<1000)小于 10000 的正整数,把其中的质数按升序输出。

输入

两行,第一行包含一个小于 1000 的正整数 n,第二行 n 个由空格隔开的正整数。

输出

若干个素数,从小到大排列,每两个素数间有一个空格。

输入示例

11

42 13 34 98 798 69 23 177 687 199 13

输出示例

13 23 199

我的程序:

#include<iostream>using namespace std;int main(){ int n,i,j,h=0,a[1001]={0},b[1001]={0},t=0; cin>>n; for(i=0;i<n;i++) { cin>>a[i]; } for(i=0;i<n;i++) { t=0; for(j=2;j<a[i];j++) { if(a[i]%j==0) { t=1; break; } } if(t==0) { b[h]=a[i]; h++; } } for(i=0;i<h-1;i++) { for(j=0;j<h-1;j++) { if(b[j]>b[j+1]) { swap(b[j],b[j+1]); } } } t=0; for(i=0;i<h-1;i++) { if(t==0) { cout<<b[i]; t++; } if(t==1) { cout<<" "<<b[i]; } } system("pause"); return 0;}(Dev-C++ 4.9.9.2)

请帮忙改错,谢谢!

最佳答案

你最后的输出有问题

....

for(i=0;i<h-1;i++) //这里,不要h-1,要用h

{

if(t==0)

{

cout<<b[i];

t++;

}

if(t==1) //这个也不对,上面是t++,不光是1要输出,其它的也要的

{

......

改为

for(i=0;i<h;i++)

{

if(t==0)

{

cout<<b[i];

t++;

}

else

....

另外,最后最好加个回车


  • 追问:
    谢谢!
    最佳答案由网友  whoami1978  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    3

    分享到:

    其他回答

    暂无其它回答!

      推荐