31. 生成主对角线元素为 1,其他元素为 0 的 3*3 二维数组
- 定义:构建一个 3 行 3 列的二维数组,让其主对角线(即行号和列号相等的元素)上的元素值为 1,其余元素值为 0,此数组也被称作 3 阶单位矩阵。
- 要点:利用两层
for循环对二维数组进行遍历,当行号和列号相等时,将元素赋值为 1,反之则赋值为 0。 - 应用:在矩阵运算、线性代数中,单位矩阵是基础且重要的概念,可用于矩阵的乘法、逆运算等操作。
c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void generateIdentityMatrix(int matrix[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (i == j) {
matrix[i][j] = 1;
} else {
matrix[i][j] = 0;
}
}
}
}
void printMatrix(int matrix[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int matrix[ROWS][COLS];
generateIdentityMatrix(matrix);
printf("生成的 3*3 单位矩阵为:\n");
printMatrix(matrix);
return 0;
}
32. 判断一个三位数是否为水仙花数
- 定义:水仙花数指的是一个三位数,其各位数字的立方和等于该数本身。例如,153 就是一个水仙花数,因为 (1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153)。
- 要点:通过取整和取余运算把三位数的百位、十位和个位数字分离出来,计算它们的立方和并与原数进行比较。
- 应用:在数字游戏、算法练习、数论研究等方面有应用,可用于检验数字的特殊性质。
c
#include <stdio.h>
int isNarcissistic(int num) {
int hundreds = num / 100;
int tens = (num / 10) % 10;
int units = num % 10;
int sumOfCubes = hundreds * hundreds * hundreds + tens * tens * tens + units * units * units;
return sumOfCubes == num;
}
int main() {
int num = 153;
if (isNarcissistic(num)) {
printf("%d 是水仙花数\n", num);
} else {
printf("%d 不是水仙花数\n", num);
}
return 0;
}


1万+

被折叠的 条评论
为什么被折叠?



