gpt4 book ai didi

c - 在 C 数组中打印非重复项

转载 作者:行者123 更新时间:2023-11-30 17:12:03 26 4
gpt4 key购买 nike

我正在为 C 类入门(额外学分作业)编写一个程序,但不知道如何丢弃数组中的重复数字。问题要求只打印非重复项;所以我能够打印第一个数字,比较以下数字并打印(如果不同),如果重复,我会丢弃下一个数字,但问题是我只知道如何比较它后面的一个数字,我想我可以做for 循环内的另一个 for 循环,但我非常困惑,无法弄清楚。我上周已经提交了我的代码,我一直在努力尝试自己解决这个问题,因此我们将不胜感激任何帮助/指导。

“编辑:问题如下:使用单下标数组解决以下问题。读取 20 个数字,每个数字在 10 到 100 之间(含)。读取每个数字时,仅打印它如果它不是已读取的数字的重复。提供所有 20 个数字都不同的最坏情况。使用尽可能小的数组来解决这个问题”

提前致谢,任何有关我如何编写程序的建议也将不胜感激,因为我是一个十足的菜鸟,并试图成为一名尽可能少坏习惯的优秀程序员。

#include <stdio.h>
#include <stdlib.h>

#define AS 20

void findDuplicate (int af[], int fAS);

int main(){

int a[AS], i , j, k;
int last = 0;

printf("Enter %d numbers between 10 and 100:\n", AS);

for (i = 0; i < AS; i++){
scanf("%d",&a[i] );
if (a[i] >= 10 && a[i] <= 100 ){
continue;
} else {
printf("You must enter values between 10 - 100\n");
i = i -1;
}
}

findDuplicate(a, AS);

system ("pause");
return 0;
}



void findDuplicate (int af[], int fAS){
int c;

printf("You entered ");

for (c=0; c < fAS; c++){
if (af[c] != af[c+1]){
printf("%d ", af[c]);
}
continue;
}

printf("\n");
}

最佳答案

您应该首先定义一个数组,它可以保存任意数量的变量..假设您正在比较 10-100,这意味着 91 个可能的不同数字。

所以,定义大小为91的数组。然后在for循环中扫描91次,看看是否有之前输入的变量。如果没有则保存并显示它,否则丢弃它。

关于c - 在 C 数组中打印非重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31840356/

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