markreisen 2022-10-20 19:21 采纳率: 100%
浏览 16
已结题

关于#for#的问题,如何解决?

求素数之和的问题
结果有问题
这是为什么?
例如输入100;
输出732;
但是如下代码算出来18;


#include<stdio.h>
int main()
{
    int high;
    int i,shu,j,sum=0;
    scanf("%d",&high);
    for(i=high;i;i--)
    {
        for(j=2;j<i;j++)
        {
            if(i%j!=0)
            continue;
            else
            break;
        }
        if(i=j)
        {
            shu++;
            sum=sum+j;
        }
        if(shu==10)
        break;
    }
    printf("%d",sum);
}
  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-10-20 19:56
    关注

    改动处见注释,供参考:

    #include<stdio.h>
    int main()
    {
        int high;
        int i,shu = 0,j,sum = 0; //修改
        scanf("%d",&high);
        for(i=high;i>0;i--)
        {
            for(j=2;j<i;j++)
            {
                if(i%j==0) //if(i%j!=0)修改
                    //continue; 修改
                    //else       修改
                break;
            }
            if(i==j)//if(i=j) 修改
            {
                shu++;
                sum=sum+j;
            }
            if(shu == 10)
               break;
        }
        printf("%d",sum);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月28日
  • 已采纳回答 10月20日
  • 创建了问题 10月20日