C和指针之数组编程练习3(判断矩阵是否为单位矩阵)
2017-11-12 23:57
316 查看
1、题目
3.单位矩阵就是一个正方形矩阵,它除了主对角线元素值为1以外,其余元素的值均为0,例如:*1 0 0
*0 1 0
*0 0 1
*就是一个3×3单位矩阵,编写一个名叫identity_matrix的函数,它接受一个10×10整型矩阵为参数
*成功返回1,失败返回1
4、修改前一个问题中的identity_matrix函数,它可以对数组进行扩展,从而能够接受任意大小的矩阵参数。函数的第一个参数应该是一个整型指针,你需要第二个参数,用于指定矩阵的大小。
2、代码实现
#include <stdio.h> /* *3.单位矩阵就是一个正方形矩阵,它除了主对角线元素值为1以外,其余元素的值均为0,例如: *1 0 0 *0 1 0 *0 0 1 *就是一个3×3单位矩阵,编写一个名叫identity_matrix的函数,它接受一个10×10整型矩阵为参数 *成功返回1,失败返回1 **/ int identity_matrix(int (*matrix)[10]){ for (int i = 0; i < 10; ++i) for (int j = 0; j < 10; ++j) { if (i == j) { if (matrix[i][j] != 1) return 0; } else { if (matrix[i][j] != 0) return 0; } } return 1; } /**4、修改前一个问题中的identity_matrix函数,它可以对数组进行扩展,从而能够接受任意大小的矩阵参数。 * 函数的第一个参数应该是一个整型指针,你需要第二个参数,用于指定矩阵的大小。 * */ int identity_matrix1(int *matrix,int n){ int row; int column; for (row = 0; row < n; row++) { for (column = 0; column < n; column++) { if (*matrix++ != (row == column)) return 0; } } return 1; } int main() { int matrix[10][10] = {{1, 0}, {1}, {1}, {1}, {1}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1}, {1}}; int result = identity_matrix(matrix); printf("result is %d\n", result); int result1 = identity_matrix1(matrix, 10); printf("result1 is %d\n", result1); return 0; }
3、运行结果
1111deMacBook-Pro:dabian a1111$ vim identity_matrix.c 1111deMacBook-Pro:dabian a1111$ gcc -w -g identity_matrix.c -o identity_matrix 1111deMacBook-Pro:dabian a1111$ ./identity_matrix result is 0 result1 is 0
相关文章推荐
- C和指针之数组编程练习5 (矩阵相乘)
- C和指针之数组之编程练习2
- C语言编程(练习1:数组和指针)
- C和指针之数组编程练习8(8皇后问题)
- C语言编程(练习2:数组和指针)
- C Primer Plus (第五版) 第十章 数组和指针 编程练习
- C语言编程(练习3:数组与指针)
- C语言编程(练习8:数组与指针)
- C语言编程(练习5:数组与指针)
- C语言编程(练习9:数组与指针)
- 《C Primer Plus 第五版》第十章(数组和指针)编程练习
- C语言编程(练习4:数组与指针)
- C和指针之字符串编程练习10(判断字符串是否是回文数)
- C语言编程(练习6:数组与指针)
- C Primer Plus 第10章 数组和指针 编程练习
- 【编程练习】将string容器保存在字符指针数组中
- 【VS开发】【编程开发】【C/C++开发】结构体中的数组与指针的内存分配情况说明
- Java编程数组中最大子矩阵简便解法实现代码
- C与指针课后答案与编程练习(第一章)
- 玩转数组 指针参数之c专家编程第九章