人形UMP9 发表于 2017-11-4 16:28:35

C语言求素数和的问题

如图,这是题目

#include <stdio.h>
int main()
{
        int number;
        int i,k,sign;
        int m,n;
        sign=0;
        scanf("%d,%d",&m,&n);
        for(i=2;0<i<=500;i++){
                int isprime;
                for(k=2;k<i;k++){
                        isprime=1;
                        if(i%k!=0){
                                isprime=1;
                        }else{
                                isprime=0;
                                break;//判断是否为素数
                        }
                }while(isprime==1){
                        scanf("%d",&i);
                        sign++;
                        number=i;//将素数输入到数组中
                        }
                }
                int count,sum;
                for(sum=0,count==n;count<=m;count++){
                        sum=sum+number;//计算m,n之间的素数和
                }printf("%d",sum);
       
}
为什么输入数字后没反应?请各位指教

BngThea 发表于 2017-11-4 16:58:25

把第一个scanf中的引号内容的逗号去掉
scanf("%d%d",&m,&n);

人形UMP9 发表于 2017-11-4 23:08:22

BngThea 发表于 2017-11-4 16:58
把第一个scanf中的引号内容的逗号去掉
scanf("%d%d",&m,&n);

还是不行啊?

BngThea 发表于 2017-11-5 07:45:02

人形UMP9 发表于 2017-11-4 23:08
还是不行啊?

槽点太多了,不一一列举了
根据你的思路简单写了一个,你对照了查看一下自己的问题
#include<stdio.h>

int main(void)
{
        int number = {2};
        int i, k, sign;
        int m, n;
        sign = 1;
       
        for(i = 3; i <= 500; i++)//求0~500之间的所有素数
        {
                for(k = 2; k < i; k++)
                {
                        if(i % k == 0)
                        {
                                break;
                        }
                        else if(k == i - 1)//如果k达到最大,都没有被整除,那么说明是素数
                        {
                                number=i;//将素数输入到数组中
                                sign++;       
                        }
                }
        }       
        scanf("%d%d", &n, &m);
        int count,sum = 0;
        for(count = n - 1; count < m; count++)
        {
                sum += number;//计算m,n之间的素数和
        }
        printf("%d\n",sum);
        return 0;
}

人形UMP9 发表于 2017-11-6 12:10:07

BngThea 发表于 2017-11-5 07:45
槽点太多了,不一一列举了
根据你的思路简单写了一个,你对照了查看一下自己的问题

这个问题如果不用数组能不能解决?

BngThea 发表于 2017-11-6 12:18:22

人形UMP9 发表于 2017-11-6 12:10
这个问题如果不用数组能不能解决?

用指针也行

人形UMP9 发表于 2017-11-6 13:24:05

BngThea 发表于 2017-11-6 12:18
用指针也行

break是会跳出所有的循环码?

人形UMP9 发表于 2017-11-6 13:26:23

BngThea 发表于 2017-11-6 12:18
用指针也行

如果把程序中的break去掉会发生什么?

BngThea 发表于 2017-11-6 13:35:26

人形UMP9 发表于 2017-11-6 13:26
如果把程序中的break去掉会发生什么?

只退出当前循环
删了也可以

人形UMP9 发表于 2017-11-6 23:32:02

BngThea 发表于 2017-11-6 13:35
只退出当前循环
删了也可以

只是退出for(k = 2; k < i; k++)这个循环码?

BngThea 发表于 2017-11-7 08:43:18

人形UMP9 发表于 2017-11-6 23:32
只是退出for(k = 2; k < i; k++)这个循环码?

对的
页: [1]
查看完整版本: C语言求素数和的问题