设有m行n列的整数构成的数组,编写程序将此矩阵中值小于等于0的元素所在行和列上的所有元素置为0,并输出。使用c语言
时间: 2024-10-13 12:16:35 浏览: 11
在C语言中,你可以使用两层循环来遍历这个二维数组。外层循环用于行,内层循环用于列。对于每个元素,如果它的值小于等于0,那么将所在的行和列的所有元素都设置为0。这里是一个简单的示例:
```c
#include <stdio.h>
#define ROWS 10 // 矩阵的行数
#define COLS 10 // 矩阵的列数
void setZeroBelowZero(int arr[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) { // 遍历每一行
for (int j = 0; j < COLS; j++) { // 遍历每一列
if (arr[i][j] <= 0) { // 如果元素小于等于0
// 将当前行和列的所有元素置零
for (int row = 0; row < ROWS; row++)
arr[row][j] = 0;
for (int col = 0; col < COLS; col++)
arr[i][col] = 0;
}
}
}
}
// 打印矩阵
void printMatrix(int arr[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int matrix[ROWS][COLS]; // 假设已初始化的矩阵
// ... 这里填充你的矩阵 ...
setZeroBelowZero(matrix);
printf("处理后的矩阵:\n");
printMatrix(matrix);
return 0;
}
```
阅读全文