| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 302 人关注过本帖
标题:求教,这个程序有怎么修改,怎么没有值???(我是初学者)
只看楼主 加入收藏
lsq0602
Rank: 1
等 级:新手上路
帖 子:3
专家分:1
注 册:2012-11-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
求教,这个程序有怎么修改,怎么没有值???(我是初学者)
#include<stdio.h>
#include<math.h>
void fun2(int m,int k,int xx[])
{
    int count=0,i,j;
    float p;
    for (i=m;count<=k;i++)
    {
        p=sqrt(i);
        for (i=2;j<=p;j++)
        {
            if (i%j==0)
                break;
            if (j>p+1)
            {
                xx[count]=i;
                printf("%d\n",xx[count]);
                count++;
            }
        }
    }
}
void main()
{
    int a,b,x_1[50];
    printf("请输入参数a和b:");
    scanf("%d%d",&a,&b);
    fun2(a,b,x_1);
}
要求是输入一个数,可以得到大于这个数的连续n个素数放到xx【】数组,例如输17,5,则输出19,23,29,31,37.
帮忙改下谢谢了!!!
搜索更多相关主题的帖子: include count 
2012-11-18 12:46
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:10 
程序代码:
#include<stdio.h>

 #include<math.h>

 void fun2(int m,int k,int xx[50])

 {
     int count=0,i,j;
     float p;
     for (i=m+1;count<k;i++) //这里把=号去掉 并且I从m+1开始
     {
         p=sqrt(i);
         for (j=2;j<=p+2;j++) //这里改了一下。。。是j=2不是i=2,之前你这里是j〈=p,下面是j〉p+1  明显矛盾了/。。。其他地方都对了
         {
             if (i%j==0)
                 break;
             if (j>p+1)
             {
                 xx[count]=i;
                 printf("%d\n",xx[count]);
                 count++;
             }
         }
     }

 }

 void main()

 {
     int a,b,x_1[50];
     printf("请输入参数a和b:");
     scanf("%d%d",&a,&b);
     fun2(a,b,x_1);

 }


[ 本帖最后由 w527705090 于 2012-11-18 13:21 编辑 ]

有心者,千方百计;无心者,千难万难。
2012-11-18 13:17
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:5 
程序代码:
void fun2(int m,int k,int xx[])
{
    int count=0,i,j;
    double p;
    for (i=m;count<k;i++)
    {
        p=sqrt(i);
        for (j=2;j<=p;j++)//是j=2,不是i=2!
        {
            if (i%j==0)
                break;
        }
            if (j>p)//在循环外,不是在循环里边啊!
            {
                xx[count]=i;
                printf("%d\n",xx[count]);
                count++;
            }
       
    }
}
你的功能函数有问题,给你改了下,主函数没问题,可以运行

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-18 13:23
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:5 
void fun2(int m,int k,int xx[])
 {
     int count=0,i,j;
     float p;
     for (i=m;count<=k;i++) // 这个 改为count<k
     {
         p=sqrt(i);
         for (i=2;j<=p;j++) // 这个地方改成 j = 2
         {
             if (i%j==0)
                 break;
             if (j>p+1) // 这个条件是不能满足的,改为 j +1 > p
             {
                 xx[count]=i;
                 printf("%d\n",xx[count]);
                 count++;
             }
         }
     }
 }

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-11-18 13:26
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:0 
程序代码:
if ((j>p)&&i>m)//在循环外,不是在循环里边啊!
            {
                xx[count]=i;
                printf("%d\n",xx[count]);
                count++;
            }
输出的条件是这个,我没看你的要求不好意思。位置不变的

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-18 13:32
lsq0602
Rank: 1
等 级:新手上路
帖 子:3
专家分:1
注 册:2012-11-18
收藏
得分:0 
谢谢大家了,都是一些手误啊,而且编译还找不出来

刚刚学习C语言,虚心学习求指教
2012-11-18 13:43
快速回复:求教,这个程序有怎么修改,怎么没有值???(我是初学者)
数据加载中...
 
   



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

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