C语言:编写函数void encrypt(int a[4]int b[][4],int n),功能:对矩阵A的每个元素Aij做如下变换:若i+j为奇数,则在Aij的每一位数字上加4后取和值的个位数字作为该位上的数字,若i+j为偶数,则在Aij的每一位数字上加2后取和值的个位数字作为该位上的数字。
时间: 2023-06-27 16:05:12 浏览: 98
以下是 C 语言代码实现:
```c
#include <stdio.h>
void encrypt(int a[4][4], int n) {
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if ((i + j) % 2 == 0) { // i+j 为偶数
a[i][j] += 2;
} else { // i+j 为奇数
a[i][j] += 4;
}
a[i][j] %= 10; // 取个位数字
}
}
}
int main() {
int a[4][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 0, 1, 2},
{3, 4, 5, 6}};
int i, j;
printf("原矩阵:\n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
encrypt(a, 4);
printf("加密后的矩阵:\n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
```
该函数接收一个 4x4 的矩阵 `a` 和矩阵的维度 `n`,并且按照题目所述的规则加密每个元素,并将结果保存在原矩阵中。在加密时,需要判断 i+j 的奇偶性,然后进行不同的加密操作,最后再取个位数字。
阅读全文