From 2914ce06a6b456a0802215d24c022aef48b82313 Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Thu, 15 Jun 2023 22:49:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 main.cpp diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..327d629 --- /dev/null +++ b/main.cpp @@ -0,0 +1,47 @@ +#include + +// 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 +int singleNumber(int nums[], int numsSize) { + int tempSingle = 0; + for (int i = 0; i < numsSize; ++i) { + for (int j = 0; j < numsSize; ++j) { + if (i == j) continue; + if (nums[i] == nums[j]) { + nums[i] = nums[j] = 0; + } + } + } + for (int i = 0; i < numsSize; ++i) { + if (nums[i] != 0) { + if (tempSingle == 0) tempSingle = nums[i]; + else return -1; + }; + } + return tempSingle; +} + +int main() { + while (true) { + int numsSize; + printf("[INFO] 请输入数组大小: "); + scanf("%d", &numsSize); + if (numsSize == -1) break; + if (numsSize == 0) { + printf("[WARNING] 无法完成计算,最少需要1位数\n\n"); + continue; + } + getchar(); + printf("[INFO] 请输入数组内容(中间使用逗号隔开): "); + int nums[numsSize]; + for (int i = 0; i < numsSize - 1; ++i) { + scanf("%d,", &nums[i]); + } + scanf("%d", &nums[numsSize - 1]); + getchar(); + // upload data to singleNumber function + printf("[OUTPUT] 输出结果: %d\n", singleNumber(nums, numsSize)); + printf("\n"); + } + printf("[SYSTEM] 已退出\n"); + return 0; +} \ No newline at end of file