下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[ ][N],int m),该函数的功能是使数组右上半三角元素中的值乘以m。
例如,若m的值为2,a数组中的值为:
则返回主程序后a数组中的值应为:
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 5//最重要的函数void fun(int a[][N], int m){int i,j;for(i=0;i<N;i++){for(j=0;j<=i;j++)a[j][i]=a[j][i]*m;}}main(){ int a[N][N],m, i, j;FILE *out;printf("*****The array*****\n");for(i=0;i<N;i++){ for(j=0;j<N;j++){a[i][j]=rand()%20;printf("%4d", a[i][j]);}printf("\n");}m=rand()%4;printf("m=%4d\n",m);fun(a,m);printf("THE RESULT\n"); for(i=0;i<N;i++){ for(j=0;j<N;j++) printf("%4d",a[i][j]);printf("\n");}/******************************/out=fopen("out.dat","w");for(i=0;i<N;i++)for(j=0;j<N;j++)a[i][j]=i*j;fun(a,8);for(i=0;i<N;i++){ for(j=0;j<N;j++)fprintf(out,"%4d",a[i][j]);fprintf(out,"\n");}fclose(out);/******************************/}
运行结果如下: