编写一段程序,程序要实现如下功能:把1到100之内的所有素数找出来并输出,以及输出素数总数。

#include<stdio.h>
void main()
{
int m,n,flag,i=0;
for(m=2;m<=100;m++) /*因为1不是素数(质数也叫素数),所以此处从2开始计数*/
{
flag=1; /*设置一个布尔变量,用来作标记,默认初始值为真*/
for(n=2;n<=m/2;n++) /*另外有写n<=m-1的*/
if(m%n==0)
flag=0;break; /*当i能被比它小的任意一个数整除的时候,说明这个数不是素数,同时修改布尔变量为假*/
if(flag) /*根据布尔变量的值是否为真输出素数*/
printf("%d",m);
i+=1;
printf("1到100之内素数的总数为%d",i);
}
}
为什么运行后输出为空??

你一开始是想用m来表示是不是素数,到后面怎么输出的是i变量了,还有代码风格比较差,,虽然我也是新手。。
# include <stdio.h>

int main(void)
{
int n, i, flag ;

for( n = 2; n <= 100; n++ )
{
flag = 0;//每一次都要重新改变
for( i = 2; i <= n/2; i++ )
{
if( n%i == 0 )
{
flag = 1;//改变状态
break;
}
}
if( !flag )
printf("%d\n", n);
}
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-08
if(m%n==0) { flag=0;break; }
或者 初始值出错 flag追问

加上花括号后变成

追答

那就不加花括号,,,,,,,改初始值,,,flag = 0 ,,,,试下,,,,没电脑所以不太确定

追问

还是不行。。。又成了空的

相似回答