C++二维数组的输入和输出

我是个新手,很新,想问下以下代码为什么只输出排而不输出列?
#include<iostream>
using namespace std;
int main()
{
int a[3][4]={{1,2,5,4},{8,5,4,8},{5,6,1,5}};
for(int i =0;i<3;i++)
{for(int j=0;j<4;j++)
{cout <<a[i][j] ;}}
cout << endl;
}
麻烦把我上面的代码用排和列输出,谢谢

#include<stdio.h>

#include<stdlib.h>


int main()

{

int m,n,i,j;

int **x;

scanf("%d%d",&m,&n);

x=(int **)malloc(sizeof(int *)*m);

for(i=0;i<m;i++)

{

x[i]=(int *)malloc(sizeof(int)*n);

}

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)

{

scanf("%d",&x[i][j]);

}

}

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)

printf("%d ",x[i][j]);

printf("\n");

}

return 0;

}



扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md--&gt;m域宽,打印出来以后,在控制台上,显示m位;

如果我们要打印的数的位数如果超过我们设定m则原样输出;

如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。



温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-02
不是很懂你的意思啊。是因为你输出的时候每行没有空行吗?那只要在输出完一行后输出endl就可以了
#include<iostream>
using namespace std;
int main()
{
int a[3][4] =
{
{1,2,5,4}, {8,5,4,8}, {5,6,1,5}
};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
cout << a[i][j] ;
}
cout<<endl;
}
}本回答被提问者采纳
第2个回答  2010-12-15
你的代码我试了一下, 可以都输出啊.如果你的意思是想换行的话.
请把cout<<endl;拿到上一个for语句里.代码如下:
#include<iostream>
using namespace std;
int main()
{
int a[3][4]={{1,2,5,4},{8,5,4,8},{5,6,1,5}};
for(int i =0;i<3;i++)
{
for(int j=0;j<4;j++)
{
cout <<a[i][j] ;
}
cout << endl;
}

system("pause");
}
第3个回答  2010-12-16
我就简单定义一个2行3列的数组
#include<stdio.h>
void main()
{
int i,j,a[2][3];
printf("请输入数组数据:");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d",a[i][j]);
printf("\n");
}
}
}
第4个回答  2010-12-15
#include<iostream>
using namespace std;
int main()
{
int a[3][4]={{1,2,5,4},{8,5,4,8},{5,6,1,5}};
for(int i =0;i<3;i++)
for(int j=0;j<4;j++)
cout <<a[i][j];
cout << endl;
}就这了,但是可别粘贴复制了,这是文字编的,可能不管用呢。
相似回答