| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 638 人关注过本帖
标题:求一组数中出现的素数,并且将得到的素数由大到小排序排序,无法得到答案, ...
只看楼主 加入收藏
加冕
Rank: 2
等 级:论坛游民
帖 子:31
专家分:15
注 册:2018-11-24
结帖率:62.5%
  已结贴   问题点数:20  回复次数:9   
求一组数中出现的素数,并且将得到的素数由大到小排序排序,无法得到答案,麻烦大家帮忙纠错
#include<stdio.h>
#define n 10
main()

{
    int i,j,k=0,x,a[n],max,b[n]={0};
     scanf("%d",&x);
     for(i=0;i<x;i++)
     {
         scanf("%d",&a[i]);

     }
     for(i=0;i<x;i++)
     {
     for(j=2;j<a[i];j++)
     {
         if(a[i]%j==0) break;   
     }
     
     if(j>=a[i])          //对于两个程序的链接如何把素数赋给下一个数组
     { x=i;
       k++;
     }  
     b[k]=a[x];
     }
     //得到新素数数组b[k]后进行排序
      for(i=0;i<=k;i++)
      {
          b[i]=max;
           for(j=i+1;j<=k;j++)
           {
               if(max<b[j])
                   max=b[j];
           }

           b[j]=b[i];
           b[i]=max;

      }
//输出

      for(k=0;k<x;k++)
      { printf("%d",b[k]);}

}

[此贴子已经被作者于2018-11-30 21:36编辑过]

搜索更多相关主题的帖子: 素数 排序 答案 max for 
2018-11-30 21:32
加冕
Rank: 2
等 级:论坛游民
帖 子:31
专家分:15
注 册:2018-11-24
  得分:0 
#include<stdio.h>
#define n 10
main()

{
    int i,j,k=0,x,a[n],max,b[n]={0};
     scanf("%d",&x);
     for(i=0;i<x;i++)
     {
         scanf("%d",&a[i]);

     }
     for(i=0;i<x;i++)
     {
     for(j=2;j<a[i];j++)
     {
         if(a[i]%j==0) break;    //对于for循环来说也许可以快速求出是否为素数但对于一个数组就不变
     }
     
     if(j>=a[i])          //难点,对于两个程序的链接如何把素数赋给下一个数组
     { x=i;
       k++;
     }  
     b[k]=a[x];
     }
     //得到新素数数组b[k]后进行排序
      for(i=0;i<=k;i++)
      {
          b[i]=max;
           for(j=i+1;j<=k;j++)
           {
               if(max<b[j])
                   max=b[j];
           }

           b[j]=b[i];
           b[i]=max;

      }
//输出

      for(k=0;k<x;k++)
      { printf("%d",b[k]);}

}

授人以鱼不如授人以渔请说一下用什么方法和需要学习什么来解决问题,谢谢大家
2018-11-30 21:35
加冕
Rank: 2
等 级:论坛游民
帖 子:31
专家分:15
注 册:2018-11-24
  得分:0 
这个是刚刚发的,是无编译出错的,但是逻辑有问题

授人以鱼不如授人以渔请说一下用什么方法和需要学习什么来解决问题,谢谢大家
2018-11-30 21:35
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
  得分:2 
逻辑有问题的话,单步调试!

太晚了!  累!  有空明天帮你看下

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-12-01 00:28
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
  得分:2 
b[i]=max;  

编译直接给出警告!  max未初始化!  直接使用了!

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-12-01 10:33
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
  得分:10 
程序代码:
 for(i=0;i<x;i++)
     {
     for(j=2;j<a[i];j++)
     {
         if(a[i]%j==0) break;    //对于for循环来说也许可以快速求出是否为素数但对于一个数组就不变
     }
//这个地方肯定有问题。比如a[5]=5,你只是判断出这个元素是素数,并没有去赋值给b[],所以,对于b[]的赋值应该放到这个for循环里面。for结束后排序。
     
     if(j>=a[i])          //难点,对于两个程序的链接如何把素数赋给下一个数组
     { x=i;
       k++;
     }  
     b[k]=a[x];
     }

代码测试环境:  WinXP+C-Free5.0.
2018-12-01 10:39
加冕
Rank: 2
等 级:论坛游民
帖 子:31
专家分:15
注 册:2018-11-24
  得分:0 
回复 4楼 Tomorrw_I
明天到来了,麻烦你看看吧

授人以鱼不如授人以渔请说一下用什么方法和需要学习什么来解决问题,谢谢大家
2018-12-01 20:15
加冕
Rank: 2
等 级:论坛游民
帖 子:31
专家分:15
注 册:2018-11-24
  得分:0 
回复 5楼 Tomorrw_I
对不起,我发的第二个帖子是编译无错的,麻烦你在看一下。

授人以鱼不如授人以渔请说一下用什么方法和需要学习什么来解决问题,谢谢大家
2018-12-01 20:16
加冕
Rank: 2
等 级:论坛游民
帖 子:31
专家分:15
注 册:2018-11-24
  得分:0 
回复 6楼 vvvcuu
谢谢你,我在看看

授人以鱼不如授人以渔请说一下用什么方法和需要学习什么来解决问题,谢谢大家
2018-12-01 20:17
C基础
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:133
专家分:421
注 册:2018-10-15
  得分:6 
其实你有好多花括号都是可以去掉的,因为你的花括号里面只有一条语句,即便你没有那些花括号也可以照样达到你想演的效果,花括号去掉之后程序就显得简洁多了
2018-12-01 22:12
快速回复:求一组数中出现的素数,并且将得到的素数由大到小排序排序,无法得到答 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057746 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved