HUST Online Judge WebBoard
Problem 1172 >> 找不到问题
201706030223 @ 2018-11-19 20:51:18
[ Quote ] [ Edit ] [ Delete ] 1#
#include "stdio.h"
int prime(int x)//判断素数
{
int i;
if(x==0)
return 0;
for (i=2;i<x;i++)
{
if (x%i==0)
break;
}
if (i<x || x==1)
return 0;
else
return 1;
}
int main()
{
int zrs,yss,c;
for(zrs=100;zrs<200;zrs++)
{
yss=(zrs*(zrs+1)-1);
if(prime(yss)==1)
{
c++;
if(c==10)
printf("%d",yss);
}
}
return 0;
}

---------------------------------------------
ver.2
下面是判断c=10后 break,再输出
--------------------------------------------
if(prime(yss)==1)
{
c++;
if(c==10)
break;
}
}
printf("%d",yss);
return 0;
}
----------------------------------------
我在上面两个有试过,结果都不对
admin @ 2018-11-19 21:03:47
[ Quote ] [ Edit ] [ Delete ] 2#
回 201706030223
int zrs,yss,c;
给c赋初值0
如果不赋初值,那么c的值就是未知数,未知数自加,结果还是未知数。
admin @ 2018-11-19 21:07:18
[ Quote ] [ Edit ] [ Delete ] 3#
这里统一回复下,评测系统使用的编译器可能和各位的编译器不一样。可能在你们使用的编译器上对于未赋初值的变量为0,在平台上都是未知的。
所以请养成良好习惯,对一切变量赋初值。