C语言换行的问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 03:09:00
1.
#include <stdio.h>
void main()
{
int i,j,k;
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if(i!=j&&j!=k&&i!=k)
printf("%d%d%d",i,j,k);
printf("\n");
}
}

2.
#include <stdio.h>
void main()
{
int i,j,k;
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if(i!=j&&j!=k&&i!=k)
printf("%d%d%d\n",i,j,k);
}
}
问题:
1 以上两个程序为什么输出的结果不一样?我用的编译工具是Visual C++。
2 谁能给我解释一下第一个程序的换行原理
3 另外这个程序我需要输出3个数字换一次行该怎么改程序。下面我改的程序为什么实现不了每3个数字换行的要求。
#include <stdio.h>
void main()
{
int i,j,k;
int count;
count=1;
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if(i!=j&&j!=k&&i!=k)
printf("%d%d%d\n",i,j

1).两个程序输出是不一样的。因为第一个程序里面的if语句判断,符合条件,输出3个数,但是,不管有没有输出,总是会换行的,因为if语句的body 只到printf("%d%d%d",i,j,k);管不到printf("\n");因此换行次数比第二个程序要多。第二个程序,是if语句条件满足的时候,在输出ijk的时候才会换行。

2)参考第一题
3)不知道你说的3个数字是 i,j,k,还是3个printf("%d%d%d\n",i,j,k);如果事前一种情况,程序2可以实现。如果是后一种情况,这样修改一下就可以了。
#include <stdio.h>
void main()
{
int i,j,k;
int count;
count=0;
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if(i!=j&&j!=k&&i!=k)
{
printf("%d%d%d\n",i,j,k);
count++;
}
if(count%3==0)
printf("\n");
}
}

printf("\n");//实现换行

#include <stdio.h>
void main()
{
int i,j,k;
int count;
count=0; //<--改为0
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)<