将三行四列的矩阵,转置输出
输入一个三行四列的矩阵,专置后输出,代码如下,为什么我的最后一行有乱码,请高人指教,哪里错了#include <stdio.h>
void main ()
{
int i,j,a,b;
for(i=0;i<3;i++)
{
scanf("%d%d%d%d",&a,&a,&a,&a);
}
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
{
b=a;
}
}
for(i=0;i<4;i++)
{ for(j=0;j<3;j++)
printf("%4d ",b);
printf("\n");
}
}
你这代码写的也太乱了点。。。。。
缩进根本判断不清楚 输出的四行三列
本帖最后由 4goodworld 于 2020-2-19 21:25 编辑
我突然发现
你好像写错了
应该是
scanf("%d %d %d %d", &a, &a, &a, &a);
才对
建议写成这样子,更清晰
int test6(){
int i, j, a, b;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
scanf("%d", &a);
}
//scanf("%d %d %d %d", &a, &a, &a, &a);
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
b = a;
}
}
for (i = 0; i < 4; i++)
{
for (j = 0; j < 3; j++) {
printf("%4d", b);
}
printf("\n");
}
return 0;
}
int main() {
test6();
return 0;
}
是scanf那里错了
#include <stdio.h>
void main ()
{
int i,j,a,b;
for(i=0; i<3; i++)
{
scanf("%d%d%d%d",&a,&a,&a,&a);
}
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
{
b=a;
}
}
for(i=0; i<4; i++)
{
for(j=0; j<3; j++)
{
printf("%-4d ",b);
}
printf("\n");
}
}
想二维数组用二重循环比较好,稍微简洁一些
#include <stdio.h>
void main ()
{
int a;
int i,j;
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
{
scanf("%d",&a);
}
}
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
{
printf("%-2d",a);
}
printf("\n");
}
}
页:
[1]