请帮我看下面这个C语言代码 怎么修改才能正确 拜谢 用的是VC++6.0

写程序,实现矩阵(3行3列)的转置(即行列互换)。
例如,输入一面的矩阵:
程序输出:
试题程序:
#include <stdio.h>
#include <conio.h>*/

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int fun(int array[3][3])
{ int i,j,t;
for (i=0;i<2;i++)
for (j=i+1;j<3;j++)
{t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}
}

main()
{ int i,j;
int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};
system("cls");
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
fun(array);
printf("Converted array:\n");
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
}

void fun(int a[][3]) { // 把a[3][3]改为a[][3]即可,应为数组是传址的。

int i,j,t;

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

for (j = i + 1;j < 3;j++) {

t = a[i][j];

a[i][j] = a[j][i];

a[j][i] = t;

}

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-02
VC要求函数是有返回值的,函数结束时必须返回一个特定的值。TC是警告。
int fun(int array[3][3])是整型函数,必须返回一个整数。
int改成void或者程序结束加return 0;
函数main()例外,默认return 0;
第2个回答  2011-09-02
唯一需要改的是将int fun(int array[3][3])改为:
void fun(int array[3][3])

其他没有错误追问

为什么要这样改? 求教

追答

因为int函数需要返回值,但是你的程序中无论是调用点还是函数声明,都不需要返回值
至于其他人回答的函数参数,不算什么大的问题,所以没有说

本回答被提问者采纳
相似回答