输入若干个整数,找是否含有两个相同的数字,用构造函数和数组,用c语言
时间: 2024-02-16 17:03:38 浏览: 134
好的,以下是示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX_SIZE 100
typedef struct {
int nums[MAX_SIZE];
int length;
} CheckDuplicate;
bool check(CheckDuplicate *checker) {
bool seen[MAX_SIZE] = {false};
for (int i = 0; i < checker->length; i++) {
if (seen[checker->nums[i]]) {
return true;
}
seen[checker->nums[i]] = true;
}
return false;
}
int main() {
int nums1[] = {1, 2, 3, 4, 5, 6, 7};
CheckDuplicate checker1 = {nums1, 7};
printf("%s\n", check(&checker1) ? "true" : "false"); // false
int nums2[] = {1, 2, 3, 4, 5, 6, 7, 7};
CheckDuplicate checker2 = {nums2, 8};
printf("%s\n", check(&checker2) ? "true" : "false"); // true
return 0;
}
```
以上代码定义了一个 `CheckDuplicate` 结构体,该结构体包含一个整数数组 `nums` 和数组长度 `length`。`check` 函数用于检查整数数组中是否有重复数字,如果有则返回 `true`,否则返回 `false`。
在 `check` 函数中,使用了一个布尔型数组 `seen` 来记录已经出现过的数字。遍历整数数组,如果当前数字已经在 `seen` 数组中出现过,则说明有重复数字,直接返回 `true`。如果遍历完整个整数数组仍然没有找到重复数字,则返回 `false`。
在示例代码中,我们先创建两个整数数组,一个有重复数字,一个没有重复数字。然后分别使用 `CheckDuplicate` 结构体来检查这两个整数数组,最终输出结果。
希望这个示例代码能够帮到你,如果你有任何问题或者需求,可以随时告诉我。
阅读全文