gpt4 book ai didi

arrays - 在 C 中只打印一次数组中的所有元素?

转载 作者:行者123 更新时间:2023-12-05 09:35:17 26 4
gpt4 key购买 nike

我在 C 中创建了一个数组,我知道如何打印数组中的每个元素,但无法弄清楚如何不打印重复的元素,或者更准确地说,就像我在标题中问的那样,如何只打印一次所有元素?

例如我的数组是:[a b c d a a b d c c]

我想这样打印:[a b c d]

我认为我应该使用 forwhile 循环,但我不知道如何使用。几个小时以来,我一直在思考这个问题并进行了一些研究,但找不到任何有值(value)的东西。

最佳答案

给你。

#include <stdio.h>

int main(void)
{
char a[] = { 'a', 'b', 'c', 'd', 'a', 'a', 'b', 'd', 'c', 'c' };
const size_t N = sizeof( a ) / sizeof( *a );

for ( size_t i = 0; i < N; i++ )
{
size_t j = 0;

while ( j != i && a[j] != a[i] ) ++j;

if ( j == i ) printf( "%c ", a[i] );
}

putchar ( '\n' );

return 0;
}

程序输出为

a b c d 

或者例如,如果您有一个包含字符串的字符数组,则可以通过以下方式实现相同的方法。

#include <stdio.h>

int main(void)
{
char s[] = { "abcdaabdcc" };

for (const char *p = s; *p != '\0'; ++p )
{
const char *prev = s;

while ( prev != p && *prev != *p ) ++prev;

if ( prev == p ) printf( "%c ", *p );
}

putchar ( '\n' );

return 0;
}

程序输出与上图相同

a b c d 

关于arrays - 在 C 中只打印一次数组中的所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65944208/

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