程序定义了N×N的二维数组,并在主函数中初始化。请编写函数 fun(int a[][N],int n),该函数的功能是使数组左下半角元素(包括主对角线)中的值加上n。 例如:若n的值为3,a数组中的值为 a=2 5 1 69 5 3 7 则返回主程序后a数组中的值应为 10 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若 干语句。程序取名myf3.c。 【程序如下】: #include<stdio.h> #define N 3 void fun(int a[][N],int n) /*请编写函数体*/ void main() { int a[N][N]={2,5,4,1,6,9,5,3,7},n, i,j; printf("*****Input n:******\n"); scanf("%d",&n); fun(a,n); printf("*****THE RESULT for(i=0;i<N;i++) {for(j=0;j<N;j++) printf("%4d",a[i][j]); printf("\n");
时间: 2024-04-28 17:20:29 浏览: 6
【解答】:
函数fun的代码如下:
void fun(int a[][N],int n)
{
int i, j;
for(i=0; i<N; i++)
{
for(j=0; j<=i; j++) // 只需处理左下半角元素
{
a[i][j] += n; // 将元素加n
}
}
}
主函数main中的代码不需要修改,完整代码如下:
#include<stdio.h>
#define N 3
void fun(int a[][N],int n)
{
int i, j;
for(i=0; i<N; i++)
{
for(j=0; j<=i; j++)
{
a[i][j] += n;
}
}
}
void main()
{
int a[N][N]={2,5,4,1,6,9,5,3,7},n, i,j;
printf("*****Input n:******\n");
scanf("%d",&n);
fun(a,n);
printf("*****THE RESULT*****\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
相关问题
下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[ ][N],int m),该函数的功能是使数组右上半三角元素中的值乘以m。 例如,若m的值为2,a数组中的值为:
这是一道C语言的编程题目,我发现你刚才复制了和之前一样的题目。不过没关系,我也可以再次为你解答。以下是代码实现:
```c
#include <stdio.h>
#define N 4
void fun(int a[][N], int m) {
for(int i=0; i<N; i++) {
for(int j=i+1; j<N; j++) {
a[i][j] *= m;
}
}
}
int main() {
int a[N][N] = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16} };
fun(a, 2);
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
```
在该程序中,定义了一个名为 `fun` 的函数,该函数接收一个二维数组和一个整数 `m`。`fun` 函数遍历数组右上半三角的元素,并将其乘以 `m`。在 `main` 函数中,定义了一个 `4x4` 的二维数组 `a`,并将其初始化。然后,调用 `fun` 函数,将 `a` 数组的右上半三角元素乘以 `2`。最后,遍历 `a` 数组并打印出来。
输出结果为:
```
1 4 6 8
5 6 14 16
9 10 11 24
13 14 15 16
```
可以看到,数组右上半三角中的元素已经被乘以了 `2`。
6. 下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[ ][N],int m),该函数的功能是使数组右上半三角元素中的值乘以m。 例如,若m的值为2,a数组中的值为:
很好,这是一道 C 语言的编程题目。以下是代码实现:
```c
#include <stdio.h>
#define N 4
void fun(int a[][N], int m) {
for(int i=0; i<N; i++) {
for(int j=i+1; j<N; j++) {
a[i][j] *= m;
}
}
}
int main() {
int a[N][N] = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16} };
fun(a, 2);
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
```
在该程序中,定义了一个名为 `fun` 的函数,该函数接收一个二维数组和一个整数 `m`。`fun` 函数遍历数组右上半三角的元素,并将其乘以 `m`。在 `main` 函数中,定义了一个 `4x4` 的二维数组 `a`,并将其初始化。然后,调用 `fun` 函数,将 `a` 数组的右上半三角元素乘以 `2`。最后,遍历 `a` 数组并打印出来。
输出结果为:
```
1 4 6 8
5 6 14 16
9 10 11 24
13 14 15 16
```
可以看到,数组右上半三角中的元素已经被乘以了 `2`。