C语言 数组中换行
//将一个二维数组行和列的元素互换,存到另一个二维数组中#include"stdio.h"voidmain(){inta[2][3]={{1,2,3},{4,5,6}};...
//将一个二维数组行和列的元素互换,存到另一个二维数组中
#include"stdio.h"
void main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array a:"); //不要换行,为的是不在
array a:下一行输出一个空行
for (i=0;i<2;i++)
for (j=0;j<3;j++)
{
if(j%3==0) printf("\n"); //需要换行,但怎么是j%3==0,
j根本就没循环到3啊(j<3)!
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
printf("array b:");
for (i=0;i<3;i++)
for (j=0;j<2;j++)
{
if(j%2==0) printf("\n");
printf("%5d",b[i][j]);
}
printf("\n");
}
/*结果是
array a:
1 2 3
4 5 6
array b:
1 4
2 5
3 6
*/
问题就是那个~~
怎么是j%3==0,j根本就没循环到3啊(j<3)!
希望有心人帮忙解决!
楼下的ezly ,我知道这你说的这个模运算
我的意思也许你还不理解,抱歉我没有把问题讲清楚
我说的是
j的取值问题,
我需要它输出三个数据然后换行,
1 2 3
4 5 6
可是那个j它取2的时候就不能再往下取了,那怎么能保证j%3==0成立呢?
也许你以为我想问这里吧“//不要换行,为的是不在
array a:下一行输出一个空行”,其实我这里恰好是利用你说的
j=0时j%3=0 来实现不在array a:下一行输出一个空行这个目的!
问题在上,望大家帮我再分析一下,多谢!
谢谢hszhsh 的回答,你以另一种方法帮解决了
可是我还想深入一点,就是,我编写的也是可以运行成功的
结果都是一样的,就是不太理解“怎么是j%3==0,j根本就没循环到3啊(j<3)!”
再次希望热心人前来帮忙
真诚感谢 展开
#include"stdio.h"
void main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array a:"); //不要换行,为的是不在
array a:下一行输出一个空行
for (i=0;i<2;i++)
for (j=0;j<3;j++)
{
if(j%3==0) printf("\n"); //需要换行,但怎么是j%3==0,
j根本就没循环到3啊(j<3)!
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
printf("array b:");
for (i=0;i<3;i++)
for (j=0;j<2;j++)
{
if(j%2==0) printf("\n");
printf("%5d",b[i][j]);
}
printf("\n");
}
/*结果是
array a:
1 2 3
4 5 6
array b:
1 4
2 5
3 6
*/
问题就是那个~~
怎么是j%3==0,j根本就没循环到3啊(j<3)!
希望有心人帮忙解决!
楼下的ezly ,我知道这你说的这个模运算
我的意思也许你还不理解,抱歉我没有把问题讲清楚
我说的是
j的取值问题,
我需要它输出三个数据然后换行,
1 2 3
4 5 6
可是那个j它取2的时候就不能再往下取了,那怎么能保证j%3==0成立呢?
也许你以为我想问这里吧“//不要换行,为的是不在
array a:下一行输出一个空行”,其实我这里恰好是利用你说的
j=0时j%3=0 来实现不在array a:下一行输出一个空行这个目的!
问题在上,望大家帮我再分析一下,多谢!
谢谢hszhsh 的回答,你以另一种方法帮解决了
可是我还想深入一点,就是,我编写的也是可以运行成功的
结果都是一样的,就是不太理解“怎么是j%3==0,j根本就没循环到3啊(j<3)!”
再次希望热心人前来帮忙
真诚感谢 展开
7个回答
展开全部
你这可这样改
for (i=0;i<2;i++)
{
for (j=0;j<3;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");//将换行放到这里
}
你现在的程序相当于这个
for (i=0;i<2;i++)
{
printf("\n");//将换行放到这里
for (j=0;j<3;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
}
因为j为0时j%3为0满足条件,输出一个换行
for (i=0;i<2;i++)
{
for (j=0;j<3;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");//将换行放到这里
}
你现在的程序相当于这个
for (i=0;i<2;i++)
{
printf("\n");//将换行放到这里
for (j=0;j<3;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
}
因为j为0时j%3为0满足条件,输出一个换行
展开全部
for (i=0;i<2;i++)
for (j=0;j<3;j++)
{
if(j%3==0) printf("\n");
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
这段程序的意思就是在打ARRAY A的时候先打一个换行(0%3=0)然后再打数组中的元素,实际上3可以换成4,5或更大的数,只要比循环的次数大就行了。
for (j=0;j<2;j++)
{
if(j%2==0) printf("\n");
printf("%5d",b[i][j]);
}
也是同理
for (j=0;j<3;j++)
{
if(j%3==0) printf("\n");
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
这段程序的意思就是在打ARRAY A的时候先打一个换行(0%3=0)然后再打数组中的元素,实际上3可以换成4,5或更大的数,只要比循环的次数大就行了。
for (j=0;j<2;j++)
{
if(j%2==0) printf("\n");
printf("%5d",b[i][j]);
}
也是同理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
j==0的时候,循环,运算{}里面的if,换行
j==1的时候,循环,运算{}里面的if,不换行
j==2的时候,循环,不换行,注意,当j==2返回到j++的时候退出第二个for循环,i++然后j==0再换行!明白了没?
j==1的时候,循环,运算{}里面的if,不换行
j==2的时候,循环,不换行,注意,当j==2返回到j++的时候退出第二个for循环,i++然后j==0再换行!明白了没?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2006-08-14
展开全部
在C语言中求模运算里,当j=0时j%3=0
(呵呵,没想到吧……)
(呵呵,没想到吧……)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、如果是二维数组,将就可按行输出就行:
for(i=0;i<3;i++)
//按每一行输出,每循环一次输出一行
{
for(j=0;j<3;j++)
//输出每一行中的每一列
printf("%3d",a[i][j]);
printf("\n");
//每输出一行,输出一个换行符
}
2、如果是一维数组,可按每行输出的数的个数来控制:
for(i=0;i<9;i++)
{
printf("%3d",a[i]);
//a为一维数组
if((i+1)%3==0)
printf("\n");
//每行输出三个数,因为数组的下标i从0开始,所以先加个1再除3取余数
}
for(i=0;i<3;i++)
//按每一行输出,每循环一次输出一行
{
for(j=0;j<3;j++)
//输出每一行中的每一列
printf("%3d",a[i][j]);
printf("\n");
//每输出一行,输出一个换行符
}
2、如果是一维数组,可按每行输出的数的个数来控制:
for(i=0;i<9;i++)
{
printf("%3d",a[i]);
//a为一维数组
if((i+1)%3==0)
printf("\n");
//每行输出三个数,因为数组的下标i从0开始,所以先加个1再除3取余数
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询