今天写了几道编程题,有两道是关于判断素数的程序,其中一道题要求输出100~200之间的素数,且每行输出4个,每个占4格输出。
这道题的难点在于如何按每行4个,每个字符占4格的格式输出。后来经过思考和询问之后,终于想出了解决方法。要立个flag,并赋值为1,循环判断不是素数时flag为0,再定义一个变量count,当count为4时换行。在编写程序时,还要注意定义变量时的位置,有的变量可以放在循环结构内,有的不行,要不然结果会出错。
附上程序:
#include <stdio.h>
#include <math.h>
int main()
{
int m;
int i;
int count = 0;
for (m=100; m<201; m++)
{
int flag = 1;
for(i=2; i<=sqrt(m); i++)
{
if (m % i == 0) //判断是否是素数
{
flag = 0;
break;
}
}
if (flag)
{
count++;
printf("%4d",m); //每个数占4位
if (count % 5 == 0) //每行4个数
{
printf ("\n");
}
}
}
return 0;
}
如有问题,请指教!