鱼C论坛

 找回密码
 立即注册
查看: 893|回复: 4

[已解决]为啥输出是0

[复制链接]
发表于 2020-12-26 19:44:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h> 

int judge(int m)
{
        int c=0;
        int i,j;
        for(i=2;i<m;i++)
        {
                if(m%i==0);
                {
                return c;
                }
        }
        c+=1;
        return c;
}

int main()
{
        int num=0;
        int i,j=1,t=0,z,a[2][1000];
        a[0][0]==2;
        for(i=3;i<2000;i++)
        {
                z=judge(i); 
                if(z==1)
                {
                        a[0][j]=i;
                        j++;
                }
        }
        for(i=0;i<1000;i++)
        {
                a[1][i]=a[0][i+1]-a[0][i];
        }
        for(i=0;i<1000;i++)
        {
                j=i;
                while(a[1][i]<1898&&t<=1000)
                {
                        a[1][i]+=a[1][j+1];
                        j++;
                        t=j;
                }
                if(a[1][i]==1898)
                        num+=1;
        }
        printf("%d",num);
        return 0;
}
最佳答案
2020-12-26 20:02:32
本帖最后由 风过无痕1989 于 2020-12-26 20:28 编辑

第12行后面多了一个分号
第25 行应该是赋值 号吧?
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-26 20:02:32 | 显示全部楼层    本楼为最佳答案   
本帖最后由 风过无痕1989 于 2020-12-26 20:28 编辑

第12行后面多了一个分号
第25 行应该是赋值 号吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-26 21:10:58 | 显示全部楼层
我调整到了第42行,后面的,因为不知道你的想法,调试起来有些困难,你自己慢慢调试吧
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h> 

int judge(int m)           // 判断是否是素数
{
        int c = 0;
        int i, j;
        for (i = 2;i < m;i++)
        {
                if (m % i == 0)          // 不是素数,返回 0
                {
                        return c;
                }
        }
        c = 1;                       // 是素数,返回 1
        return c;
}

int main()
{
        int num = 0;
        int i, j = 1, t = 0, z, a[2][1000];
        a[0][0] = 2;
        for (i = 3;i < 2000;i++)
        {
                z = judge(i);           // 调用函数判断 i 是否是素数
                if (z == 1)
                {
                        a[0][j] = i;        // 是素数,将 i 存入数组
                        j++;                // 存入素数个数
                }
        }

        z = j;                      // 将素数总数赋给变量 z
        for (i = 0;i < z;i++)       // 为调试所加,输出所有的素数
        {
                a[1][i] = a[0][i + 1] - a[0][i];
        }
        
        for (i = 0;i < z;i++)
        {
                j = i;
                while (a[1][i]<1898 && t <= 1000)
                {
                        a[1][i] += a[1][j + 1];
                        j++;
                        t = j;
                }
                if (a[1][i] == 1898)
                        num += 1;
        }
        printf("%d", num);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-26 21:35:32 | 显示全部楼层
风过无痕1989 发表于 2020-12-26 21:10
我调整到了第42行,后面的,因为不知道你的想法,调试起来有些困难,你自己慢慢调试吧

啧,就是你说的那个问题呀,最近写程序老是犯这样的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-26 21:44:16 | 显示全部楼层
一世轻尘 发表于 2020-12-26 21:35
啧,就是你说的那个问题呀,最近写程序老是犯这样的问题

我上面的程序帖子,帮你将循环变量的上限改了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 06:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表