使数组的左下三角元素中的值乘以n

271 阅读1分钟

读前福利:几百本互联网技术书籍送给大家mp.weixin.qq.com/s/dFqVQ2qJx…


1 题目

函数:fun(int a[][N], int n)

功能:使数组的左下三角元素中的值乘以n

描述:程序定义了 N*N 的二维数组,并在主函数中自动赋值。

举例: 若 n 的值为3,a数组中的值为 1 9 7 3 9 7 2 3 8 则返回主程序后 a 数组中的值应该为 3 9 7 9 27 7 6 9 24

2 思路

利用二重循环解决

在第二层需要进行一点注意的地方

3 代码

# include <stdio.h> 
# include <stdlib.h>
# define N 3

/**
函数:fun(int a[][N], int n)
功能:使数组的左下三角元素中的值乘以n
描述:程序定义了 N*N 的二维数组,并在主函数中自动赋值。
举例:
若 n 的值为3,a数组中的值为 
1  9  7
3  9  7
2  3  8
则返回主程序后 a 数组中的值应该为
3  9  7
9  27 7
6  9  24
*/
 
void fun(int a[][N], int n) {
	for (int i = 0; i < N; ++i) {
		for (int j = 0; j <= i; ++j) {
			a[i][j] = a[i][j] * n;
		}
	}
}

int main(int argc, char const *argv[]) { 
	int a[N][N] = {{1,9,7}, {3,9,7}, {2,3,8}};
	int n = 3; 

	printf("原数组为:\n");
	for (int i = 0; i < N; ++i) {
		for (int j = 0; j < N; ++j) {
			printf("%d\t", a[i][j]);
		}
		printf("\n");
	}

	fun(a, n);
	printf("计算后数组:\n");
	for (int i = 0; i < N; ++i) {
		for (int j = 0; j < N; ++j) {
			printf("%d\t", a[i][j]);
		}
		printf("\n");
	}
}

示例结果:

$ gcc ex008.c -o demo
$ ./demo
原数组为:
1	9	7
3	9	7
2	3	8
计算后数组:
3	9	7
9	27	7
6	9	24