gpt4 book ai didi

c - 搜索 vector 中出现两次的所有整数

转载 作者:行者123 更新时间:2023-11-30 19:28:31 25 4
gpt4 key购买 nike

我在大学时接到的任务是实现最多输入10个整数,并将其存储在一维 vector 中。然后, vector 的每个整数都需要显示在显示屏上(通过 printf)。

但是,我不知道如何检查每个数字的 vector 。我想到了让 vector 的指针从 0 运行到 9 并再次将每个元素的值与所有元素进行比较的方法,但我确信有一种更聪明的方法。无论如何,我不知道如何编写这个想法,因为我是 C 语言新手。

这是我尝试过的:

#include <stdio.h>

int main(void)
{
int vector[10];
int a;
int b;
int c;
a = 0;
b = 0;
c = 0;

printf("Please input 10 integers.\n\n");

while (a <= 10);
{
for (scanf_s("%lf", &vektor[a]) == 0)
{
printf("This is not an integer. Please try again.\n");
fflush(stdin);
}
a++;
}

for (b <= 10);
{
if (vector[b] != vector[c]);
{
printf("&d", vector[b]);
c++;
}
b++;
}

return 0;
}

最佳答案

您的代码有几个问题,一些是语法问题,一些是语义问题。您的编译器将帮助解决许多前一种问题,例如

  • 一处变量名称 vector 拼写错误(尽管这可能是事后遗漏的编辑),并且
  • for 循环语法不正确

某些编译器会注意到您的 scanf 格式与相应的参数不匹配。此外,您甚至可能会收到一条警告,提示您错误地放置在循环 header 与其预期主体之间的分号。然而,我不知道有哪个编译器会警告您错误的输入将导致您的输入循环无限期地旋转。

但我认为最重要的问题是仅打印非重复元素的方法的细节根本不起作用。为此,我建议在尝试编写 C 代码来实现问题之前先弄清楚如何用文字描述计算机(或人)应如何解决问题。这实际上是两个不同的练习,特别是对于对 C 语言熟悉程度有限的人来说。您可以推理散文描述,而不会陷入 C 语法的困境和分心。

例如,以下是一些可能适合的词:

  1. 从第一个到最后一个依次考虑数组中的每个元素 E。
  2. 检查数组中 E 之前的所有元素是否包含相同值。
  3. 如果 E 之前的元素都不包含与 E 相同的值,则 E 包含其值的第一次出现,因此打印它。否则,当处理先前的某个元素时,E 的值已经被打印,因此不要再次打印它。
  4. 考虑下一个 E(如果有)(返回步骤 1)。

关于c - 搜索 vector 中出现两次的所有整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53856703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com