Tag: 重复

如何查找数组中重复的次数?

我很困惑如何找出用户输入中重复了多少次。 我能够输入数字并查看哪些数字正在重复但不确定如何打印出每个输入的数字以及该数字的使用次数。 这就是我到目前为止所拥有的 #include #include int main(){ double numArray[100]; int x = 0; int y = 0; int counter = 1; int count = 0; setvbuf(stdout, NULL, _IONBF, 0); printf(“Enter any number of integers between 0 and 99 followed a non-numeric: \n”); for (x = 0; x < 100; x++) { if (scanf("%lf", &numArray[x]) != […]

用于删除字符串中重复字符的C程序…显示运行时错误

我编写了以下函数来从字符串中删除重复的字符。例如:如果str =“heeello; removeDuplicate(str) 将返回helo …但它在运行时显示一些错误。我已经添加了一些printf()语句用于调试…有谁能告诉我这是什么问题? char* removeDuplicate(char str[])//remove duplicate characters from a string,so that each character in a string is not repeating { int i = 0,j; char ch; printf(“\nstr is %s”,str); while((ch = str[i++] )!= ‘\0’) { j = i; printf(“\n—-ch = %c—-“,ch); while(str[j] != ‘\0’) { printf(“\n——–Checking whether %c = %c \n”,str[j],ch); if(ch […]

在C中重复程序function失败,scanf相关吗?

所以我试图询问用户是否愿意重复我的程序,我偶尔得到一个奇怪的结果。 它不会每次都发生,我无法弄清楚触发它的原因。 对我来说,在我输入’q’到repeatProgram而不是’q’后,它会分配’return’,但我不知道为什么。 工作时的输出: 退出输入q,继续输入y。 小号 你已输入s,这不是一个有效的选项。 失败时的输出: 退出输入q,继续输入y。 q 你进去了 ,这不是一个有效的选择。 代码: char RepeatProgramPrompt() { char repeatProgram; do { printf(“\nTo exit enter q, to continue enter y.\n”); scanf(“%c%*c”, &repeatProgram); repeatProgram = tolower(repeatProgram); if(repeatProgram != ‘y’ && repeatProgram != ‘q’) { printf(“\nYou’ve entered %c, that isn’t a valid option.\n”, repeatProgram); } }while(repeatProgram != ‘y’ && […]

在C中进行重复数据删除的高效最近集合成员测试?

我有无限数量的12字节消息到达。 内容可以被视为随机和无结构的。 (长度很重要,因为它比大多数哈希短。) 我想重复删除它们。 一种方法是将最后1,000条消息存储在循环缓冲区中,并在接受消息之前检查所有1,000条消息以进行匹配(并将其插入循环缓冲区以供将来检查)。 还有哪些其他方法可以提高CPU和内存效率?

如何使用char *复制结构并指向它?

我是C编程的新手,很想得到一些帮助。 我有这个结构: typedef struct house { int numOfRooms; char* houseName; }HOUSE,*pHOUSE; 我想创建一个函数来获取指向HOUSE的指针,并返回一个新指针,指向位于内存中不同位置的同一个HOUSE – 目的是能够在不改变两者的情况下更改一个指针:我将尝试更清晰: pHOUSE duplicate_house(pHOUSE house) { pHOUSE newh = (pHOUSE)calloc(1,sizeof(HOUSE)); newh = house //I get here a pointer that points on the same house.. so If I change for exmample: // newh->numOfRooms = 9 – > both will change and I don’t want […]

删除C中char数组中相同的连续行

我正在尝试创建一个函数来检测char数组中是否有相同的连续行。 例如,如果char数组包含: 你好 你好 你好 你好 你好 然后数组将更改为 你好 你好 基本上,我想检测连续的,相同的行,并删除它们,因此只剩下其中一行。 如果一行与早期行相同,但它们不是连续的,那么就没问题了。 实际上,整条线不必相同,但至少前79或MAXCHARS必须相同。 另外,我不想通过写入中间文件来做到这一点。 理想情况下,我会将数据存储在数组中。 我想的是: int deleteRepeats(char *a) { int i; for (i=0; i<=MAXCHARS; i++) { if (a[i] != '\n') /* copy into new array /* } } 但我有点失落。 我现在不想打印arrays,因为我将在以后的程序中再次修改它; 我仍然需要使用。 非常感谢任何帮助/解决方案。 谢谢。

C:从未排序的链表中删除重复项

我一直在研究这个问题的时间超过了我现在承认的时间,这让我疯了! 给定一个简单的链表,比如除了指向下一个节点( next )的指针之外只存储一个整数( data ),我想要一个算法去除重复,而不需要排序或依赖辅助函数。 以前的问题已经被问及Java中未分类的链表,它利用了Java提供的辅助function。 这与C无关,而不使用辅助函数。 我已经修改了代码并且已经将其用于某些情况,但不是全部。 这是一个完整的,可validation的示例 – 我包含了push()函数来创建链接列表和main()包含测试用例,但我的问题所涉及的逻辑仅在removeDuplicates() : #include #include struct node { int data; struct node *next; }; void push(struct node **headRef, int data) { struct node *newNode = malloc(sizeof(struct node)); newNode->data = data; newNode->next = *headRef; *headRef = newNode; } void removeDuplicates(struct node **head) { struct node *currentNode […]

在C中删除数组中的重复项

这个问题有点复杂。 这里的问题是摆脱重复,并将数组的唯一元素保存到具有原始序列的另一个数组中。 例如 : 如果输入是bacadt 结果应该是:输入输入的确切状态的bacdt。 因此,对于排序数组,然后检查无法工作,因为我丢失了原始序列。 我被建议使用索引数组,但我不知道该怎么做。 那你有什么建议呢? 对于那些愿意回答这个问题的人,我想补充一些具体的信息。 char** finduni(char *words[100],int limit) { // //Methods here // } 是我的function。 应该删除重复项并将其存储在不同数组中的数组是单词[100]。 因此,这个过程将在此完成。 我首先考虑将单词的所有元素放入另一个数组并对该数组进行排序,但在某些测试之后这不起作用。 只是提醒解决者:)。