3. 二维矩阵 13x13,求其中最小的数的所有位置,列出其中所有的重复数字以及它们的重复的个数C语言
时间: 2024-10-29 12:10:04 浏览: 24
在C语言中,你可以使用循环和数组来解决这个问题。首先,遍历整个13x13的矩阵,找到最小值及其位置。然后,可以创建一个哈希表(如数组或结构体数组),用于存储每个发现的数字及其出现次数。接下来是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
#define ROWS 13
#define COLS 13
typedef struct {
int num;
int count;
} CountPair;
// 初始化计数数组
CountPair count[ROWS * COLS];
int main() {
int matrix[ROWS][COLS];
// 假设matrix已经填充了数据
int min_value = INT_MAX;
int min_x, min_y; // 最小值的位置
// 找到最小值及其位置
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (matrix[i][j] < min_value) {
min_value = matrix[i][j];
min_x = i;
min_y = j;
}
}
}
printf("Minimum value: %d at position (%d,%d)\n", min_value, min_x, min_y);
// 更新计数
count[min_value].count = 1;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (matrix[i][j] == min_value) {
count[min_value].count++;
}
}
}
// 输出重复数字及其个数
printf("Repeating numbers and their counts:\n");
for (int i = 0; i < ROWS * COLS; i++) {
if (count[i].count > 1) {
printf("%d appears %d times\n", i, count[i].count);
}
}
return 0;
}
```
阅读全文