用c语言编程。现有一组数,怎样输出其中含有重复数字的数字的个数?若该组数为:123,121,234;则121中含有重复数字1,则含有重复数字的数字个数为1.
时间: 2024-10-05 12:04:05 浏览: 25
在 C 语言中,你可以通过创建一个哈希表(如利用数组或者结构体+哈希函数)来存储每个数字及其出现的次数,然后遍历这个哈希表,找出出现次数大于1的数字。以下是简单的步骤:
1. 定义一个大小适当的数组或结构体,比如 `count[100]` 或者自定义一个 `NumberCount` 结构,用于记录每个数字的计数。
2. 遍历输入的一维数组。假设数组名为 `numbers`,长度为 `n`。
```c
int count[100] = {0}; // 初始化所有元素为0
for (int i = 0; i < n; i++) {
int number = numbers[i];
// 如果这个数字已经在数组中,计数加1
if (count[number] > 0) {
count[number]++;
} else {
count[number] = 1;
}
}
```
3. 计算并输出含有重复数字的个数。遍历 `count` 数组,找到值大于1的项。
```c
int duplicate_count = 0;
for (int i = 0; i < 100; i++) {
if (count[i] > 1) {
duplicate_count++;
}
}
printf("含有重复数字的数字个数为:%d\n", duplicate_count);
```
在这个例子中,如果输入数组是 `numbers = {123, 121, 234}`,最后会输出 `duplicate_count = 1`,因为 `count[1]` 的值为2。
阅读全文