C语言改成每10个数换一行

C语言改成每10个数换一行

#include<stdio.h>
int main()
{
int i;
for(i=1;i<=100;i++)
{
if(i%3==0)
printf("%d ",i);

}
}
1,每行输出10个
2,如果输出数字小于10,在前面加个0, 即01~09,如此输出就美观了

统计一下输出数字的个数。

分析,第一个输出的是3 然后是 6 9 12 ...

这样 第10个输出的 就是 30 

所以 只要 i%30 == 0 就代表输出10个了。

于是

#include<stdio.h>
int main()
{
int i;
for(i=1;i<=100;i++)
{
if(i%3==0)
printf("%d ",i);
        if(i%30==0) 
            printf("\n");

}
}追问

这种方法不太好 ,如果每行输出6个,第行输出11个,都次都去数吗?

1,请用一楼的方法进行改写
2,如果输出数字小于10,在前面加个0, 即01~09,如此输出就美观了

追答#include<stdio.h>
int main()
{
    int i;
    int j;
    for(i=1, j = 0;i<=100;i++)
    {
        if(i%3==0)
            printf("%02d ",i);
            if(++j%10==0) 
                printf("\n");
 
    }
}追问

怎么又错了,每行输出10个

追答

少了一个大括号

#include<stdio.h>
int main()
{
    int i;
    int j;
    for(i=1, j = 0;i<=100;i++)
    {
        if(i%3==0)
        {
            printf("%02d ",i);
        if(++j%10==0) 
            printf("\n");
        }
  
    }
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-04
这样写就可以了
clude
void main()
{
int a[20]={0};
for(int i = 0;i10;i++)
{
scanf("%d",&a[i]);
if( i1)
{
if(a[i] {
i = i -1;
}
}
}
scanf("%d",a[10]);
for(int j =0;j10;j++)
{
for(int k = j;k10;k++)
{
if(a[j]a[k+1])
{
m = a[k+1];
a[k+1]=a[j];
a[j] = m;
}
}
}
for(int n =0;n11;n++)
printf("%d",a[n]);
第2个回答  2016-05-20
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=100;i++)
{
if(i%3==0)
{
printf("%d ",i);
j++;
}
if (j%10==0)printf("\n");
}
}
第3个回答  推荐于2017-12-16
int i,j;
for(i=1,j=0;i<=100;i++)
{
if ( i%3==0 )
{
printf("%d ",i);
j++; if ( j%10==0 ) printf("\n");
}

}本回答被网友采纳
第4个回答  2017-08-21
clude
void main()
{
int a[20]={0};
for(int i = 0;i10;i++)
{
scanf("%d",&a[i]);
if( i1)
{
if(a[i] {
i = i -1;
}
}
}
scanf("%d",a[10]);
for(int j =0;j10;j++)
{
for(int k = j;k10;k++)
{
if(a[j]a[k+1])
{
m = a[k+1];
a[k+1]=a[j];
a[j] = m;
}
}
}
for(int n =0;n11;n++)
printf("%d",a[n]);
相似回答