当直接给n,m赋值时,素数正常输出,结果输出也是正确的
而使用scanf给n,m赋值后,结果就变成了0,且素数也不再输出
想问一下程序的问题出在了哪?
/*
现在,给定两个整数n和m,0<n<=m<=200,
你的程序要计算第n个素数到第m个素数之间所有的素数的和
包括第n个素数和第m个素数。
*/
#include <stdio.h>
int main ()
{
int x,i,n,m,a=0;
int total,stop;
scanf("%d %d",&n,&m); //读取n,m的值
for (x=2;x>0;x++) //取素数
{
int bian = 1;
for (i=2;i<x;i++)
{
if (x % i == 0)
{
bian = 0; //当 x 不为素数时,则将变量bian赋值为 0
break;
}
}
if (bian == 1) //当 x 为素数时,进入判断
{
a++;
if (a>=n) //n个素数到第m个素数之间所有的素数的和
{
if (a<=m)
{
total = x + total;
printf("%d",x);
}
if (a > m) //当取到第m个素数时退出循环
{
stop = 0;
break;
}
}
}
if (stop) break;
}
printf("%d",total);
return 0;
}