高手帮忙!!~! C语言的!!

来源:百度知道 编辑:UC知道 时间:2024/05/21 11:59:05
编写一个程序,使给定的一个二维数组(3*3)转置,即行列互换

这是我编写的:
#include <stdio.h>
#define N=3
void main()
{void convert(int a[][3]);
int i,j;
int a[N][N],b[N][N];
prinft("input array:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
printf("original array:\n");
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%5d",a[i][j]);
printf("/n");
}
convert(a);
printf("convert array:\n");
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%5d",b[i][j]);
printf("\n");
}
}

void convert(int a[3][3])
{int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{b[j][i]=a[i][j];}
}

在编译器下编译时有14个错误和警告!
但是我找不出哪里错了,高手门帮我看一下.
也不知道是不是编译器有问题.....

1,你没明白宏定义的基本写法,你写为:#define N=3 这是错误的,N和3之间要有空格.建议看看教材上关于宏定义的章节.

2,在main函数中printf("/n"); ,斜杠反了,应为printf("\n");

3,在调用convert函数时,你的函数设计有问题,因为你在函数中使用了数组b,在convert函数里并没有对b进行定义,编译器找不到.改法如下:(在原来代码基础之上改的)
#include <stdio.h>
#define N 3
void main()
{
void convert(int a[][3],int b[][3]);
int i,j;
int a[N][N],b[N][N];
printf("input array:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("original array:\n");

for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
convert(a,b);

printf("convert array:\n");

for(i=0;i<N;i++)
{