交换矩阵程序出错,请各位看看

来源:百度知道 编辑:UC知道 时间:2024/06/15 17:56:07
#include"stdio.h"
#include"stdlib.h"
main()
{
int a[5][5],n;
void h(int a[][],int);

h(a[][],3);h(a[][],4);h(a[][],5);
}
void h(int a[][],int n);
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=rand()%100;
printf("%d ",a[i][j]);
}
printf("\n");
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n"):
}
printf("\n");
}
还有如下 的错误提示看不懂。。
project_174_10\juzheng.cpp(6) : error C2087: '<Unknown>' : missing subscript
project_174_10\juzheng.cpp(8) : error C2059: syntax error : ']'
project_174_10\juzheng.cpp(

我靠!
这代码完全不能看啊~~
函数声明居然在main()里?
函数定义还加分号?

逻辑我就不管了...
我改了一下,可以编译通过
但是具体执行出来是什么,我也不知道
void h(int a[5][5],int);//参数是二维数组,要写明大小...最好能用指针...考虑到你本身没用...而且好像也不是动态,就直接写死了
int main()
{
int a[5][5],n;//你这里的a数组没有初始化,不知道会不会出问题,没具体看你的h()是如何实现,自己注意下吧
h(a,3);h(a,4);h(a,5);//直接传参,因为这里的a,就是一个二维数组,所以不用再加[][]了
return(1); //我是用的devc++,所以...要有返回值,你的编译器貌似不需要
}
void h(int a[5][5],int n)//定义的时候不需要加分号
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=rand()%100;
printf("%d ",a[i][j]);
}
printf("\n");
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n"); //这里你用的冒号..改成分号
}
printf(&qu