编程题
程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:使数组右上三角元素中的值乘以m 。
例如:若m的值为2,a 数组中的值为
| 1 9 7 | | 2 18 14|
a = | 2 3 8 | 则返回主程序后a数组中的值应为 | 2 6 16|
| 4 5 6 | | 4 5 12|
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
#define N 5
int fun ( int a[][N], int m )
{
}
main ( )
{ int a[N][N], m, i, j;
printf("***** The array *****\n");
for ( i =0; i
{ for ( j =0; j
{ a[i][j] = rand()%20; printf( "%4d", a[i][j] ); }
printf("\n");
}
do m = rand()%10 ; while ( m>=3 );
printf("m = %4d\n",m);
fun ( a ,m );
printf ("THE RESULT\n");
for ( i =0; i
{ for ( j =0; j
printf("\n");
}
NONO ( );
}
解题思路:
本题是利用两重循环给二维数组右上三角元素中的值乘以m。
参考答案:
int fun ( int a[][N], int m )
{
int i, j;
for(i = 0 ; i < N ; i++)
for(j = i ; j < N ; j++)
a[i][j] *= m ;
}
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |