此题拟用最基本的方法解决。遍历3~100,考察能否可被3或5整除,将能被3或5整除的数输出。代码如下(为输出版面整齐,每行限20个数):
#include "stdio.h"
int main(int argc,char *argv[]){
int i,l;
for(l=0,i=3;i<=100;i++)//遍历3~100
if(i%3==0 || i%5==0)//判断能被3或5整除才输出
printf(++l%20 ? "%4d" : "%4d\n",i);
if(l%20)
printf("\n");
return 0;
}
运行结果如下:
#include
void main(){
int i;
for(i=1;i<=100;i++){
if(i%3==0)printf("%d ",i);
else if(i%5==0)printf("%d ",i);}
} 上面提问者的程序是有语法和算法理论错误的,语法错误在于最后面少了一个花括号,而算法错误在于连续使用两个if语句,那样输出会有重复的数字,比如15,既可以被3整除,有可以被5整除,所以会输出两个15,改正方法可以在第二个if语句改成else if语句,程序已改好如上,可直接复制的哦!
#include "stdio.h"int main()
{
int i;
for(i=1;i<=100;++i)
{
if((i%3==0)||(i%5==0))
printf("%d\n",i);
}
return 0;
}一个循环就OK了
#include
void main()
{int i;
for(i=1;i<=100;i++)
{if(i%3==0)
printf("%d ",i);
if(i%5==0)
printf("%d ",i);
}