一世轻尘 发表于 2020-12-26 19:44:46

为啥输出是0

#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;
        a==2;
        for(i=3;i<2000;i++)
        {
                z=judge(i);
                if(z==1)
                {
                        a=i;
                        j++;
                }
        }
        for(i=0;i<1000;i++)
        {
                a=a-a;
        }
        for(i=0;i<1000;i++)
        {
                j=i;
                while(a<1898&&t<=1000)
                {
                        a+=a;
                        j++;
                        t=j;
                }
                if(a==1898)
                        num+=1;
        }
        printf("%d",num);
        return 0;
}

风过无痕1989 发表于 2020-12-26 20:02:32

本帖最后由 风过无痕1989 于 2020-12-26 20:28 编辑

第12行后面多了一个分号
第25 行应该是赋值 号吧?

风过无痕1989 发表于 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;
        a = 2;
        for (i = 3;i < 2000;i++)
        {
                z = judge(i);         // 调用函数判断 i 是否是素数
                if (z == 1)
                {
                        a = i;      // 是素数,将 i 存入数组
                        j++;                // 存入素数个数
                }
        }

        z = j;                      // 将素数总数赋给变量 z
        for (i = 0;i < z;i++)       // 为调试所加,输出所有的素数
        {
                a = a - a;
        }
       
        for (i = 0;i < z;i++)
        {
                j = i;
                while (a<1898 && t <= 1000)
                {
                        a += a;
                        j++;
                        t = j;
                }
                if (a == 1898)
                        num += 1;
        }
        printf("%d", num);
        return 0;
}

一世轻尘 发表于 2020-12-26 21:35:32

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

啧,就是你说的那个问题呀,最近写程序老是犯这样的问题{:10_312:}

风过无痕1989 发表于 2020-12-26 21:44:16

一世轻尘 发表于 2020-12-26 21:35
啧,就是你说的那个问题呀,最近写程序老是犯这样的问题

我上面的程序帖子,帮你将循环变量的上限改了
页: [1]
查看完整版本: 为啥输出是0