gpt4 book ai didi

c - 给定 10 个输入数字并存储在一个数组中,我如何检查下一个值是否与上一个不同?

转载 作者:行者123 更新时间:2023-12-04 00:21:13 24 4
gpt4 key购买 nike

这是我第一次使用数组,所以我尝试在我的课本上做一些练习。任务通过:

Store 10 numbers in an array, print each one of them without printing the same number twice.

Examples:

array values: 1, 2, 4, 6, 3, 7, 8, 44, 2,1

printable values: 1, 2, 4, 6, 3, 7, 8, 44

我设法创建了一个 for 循环来存储数组中的 10 个值中的每一个,但我不知道如何检查彼此之间存储的值。

到目前为止我的代码。

int main()
{
int array[10], values[10], i;

printf("insert 10 integers:");
for(i=0; i<10; i++)
{
printf("\n");
scanf("%d", &array[i]);
}

return 0;
}

我尝试考虑使用变量来存储值,而数组中的实际值会发生变化,这样我就可以进行选择并检查新值是否与变量相等/不同。但要这样做,我必须将变量包含在循环中,这将使它毫无用处,因为新变量将始终等于新输入。

编辑 1:

int main()
{
int array[10], values[10], i, a=1;

printf("insert 10 integers:");
for(i=0; i<10; i++)
{
printf("\n");
scanf("%d", &array[i]);
a=i-1;
if(array[i]!=array[a])
{
values[i]=array[i];
}
}
for(i=0; i<10; i++)
{
printf("\n%d", values[i]);
}
return 0;
}

我编写了这段新的代码部分,它实际上是打印数组的值,而不是再次打印彼此相等的值。为此,我想到了使用一个新索引“a”,它总是比第一个索引“i”小 1。除了我仍然打印 10 个数字并用随机值替换删除的值

最佳答案

我喜欢 Govind Parmar 的建议。

另一种方法可能是保留一份“重复*”列表在您打印时

例如(伪代码):

#define ARRAY_SIZE 10

void get_values(int[] array, int n_elements) {
printf("insert %d integers:", n_elements);
for(int i=0; i<n_elements i++) {
printf("\n");
scanf("%d", &array[i]);
}
}

bool check_printed (int[] array, int idx) {
int value = array[idx];
for (int i=0; i < idx-1; i++) {
if (array[i] == value) {
return TRUE;
}
}
return FALSE;
}

int main() {
int array[ARRAY_SIZE];
get_values(array, ARRAY_SIZE);
for(i=0; i<ARRAY_SIZE; i++) {
if (!check_printed(array[i]) {
printf("\n%d", array[i]);
}
}
return 0;
}

关于c - 给定 10 个输入数字并存储在一个数组中,我如何检查下一个值是否与上一个不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60530045/

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