c语言编程经典习题详解4

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值