c语言每输出5个换行

要求输出100-200的素数,每输出5个换行。为什么会这样。

加一个计数的变量,每次找到目标时计数加一,被5整除时换行。

源代码如下:

#include <stdio.h>

int main() {

int a, b, c;

int l, i;

int count = 0; // 计数的变量

for (i = 100; i <= 999; i++)

{

a = i / 100;

b = i / 10 % 10;

c = i % 10;

l = a + b + c;

if (l % 7 == 0) {

printf("%d ", i);

count++;

// 就是这里

if (count % 5 == 0)

printf("\n");

}

}

return 0;

}

扩展资料

1、printf()函数在碰到”\n”时,并没有直接输出字符’\’与字符’n’,而是将它们看作一个换行标记,执行了换行操作,以使后面的输出打印在新的一行。

2、printf函数的返回值是返回所打印的字符的数目。如有输出错误,那么printf()会返回一个负数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-17

统计的m出错了。新增一个变量,该变量初值为0,然后输出一个素数,变量值+1,然后判断变量,如果%5等于0,输出换行。正确的如下:(ps:我感觉你的判断素数逻辑很乱)

#include<stdio.h>
#include<math.h>
int main(){
int m=100,k,i,n=1,j=0;
k=sqrt(m);
while(m<=200){
for(i=2;i<=k;i++,n++)
if(m%i==0) break;
if(i>=(k+1)){
printf("%d ",m);
j++;
if(j%5==0)
printf("\n");
}
m++;
}
}

本回答被提问者采纳
第2个回答  2010-12-21
给你改了点

int main()
{
int n,i,a=0;
int flag = 0;
for(n=2;n<=60;n++)
{
for(i=2;i<=n;i++)
if(n%i==0) break;
if(i==n)
{
printf("%d\t",n);
a++;
flag = 0;
}
if(a%5==0 && !flag)
{
flag = 1;
printf("\n");
}
}

printf("\n");

return 0;
}
第3个回答  2018-04-17
把n++拿出来,放到12行和13行之间。追问

有办法大概输出成这样吗

1    2    3    4    5

6    7    8    9    10

11  12  13  14  15

第4个回答  2018-04-17
手术成功不光在于术后没有后遗症,更关键是要自然美观。马力院长经常在她的微博里说,成功的双眼皮主要在于这三点:1.术后自然;2.术后双眼皮没有瘢痕;3.术后无不适感。
相似回答