C 删除堆栈中的重复元素,并使用不带指针的数组实现它

发布于 科技 2024-07-31
13个回答
  1. 匿名用户2024-01-31

    这个想法是可行的。 让我们试着让它发生。 不应该有太多**。 这基本上只是一个两层循环。

    另外,C语言中数组和指针的关系非常密切,数组的实现与指针的使用没有直接关系。 这只是语法和编程习惯的差异。

    当你有更多的编程时,你可以体验它。

    怎么会错呢? 最简单的调试方法:使用 printf 打印出每个步骤,看看哪个步骤出了问题。

    存在重复跳过,换句话说,当前元素被发现是重复的,并且没有放入堆栈中。 因此,您不必删除或替换重复的元素。

    当您触摸某个元素时,请检查它是否已经在堆栈中,如果是,则它不在堆栈上。 在将其放入堆栈后,无需将其替换为空格或删除。 这很麻烦,也很浪费时间。

  2. 匿名用户2024-01-30

    这应该不是很困难。

    您可以使用变量来标记堆栈的顶部,例如 int top = 0;

    这样,每次进入堆栈时,top++,以及离开堆栈时,都可以注意判断堆栈是满的还是空的。

  3. 匿名用户2024-01-29

    int top;堆栈的顶部必须是全局变量。

    int gettop(int a)

    e=a[top];有效值。

    top--;堆栈的顶部是自递减的。

    return e;

    > 是调用 struct 成员的指针变量的等效点号。

  4. 匿名用户2024-01-28

    m是什么类型?,我们以int为例。

    int m;

    m = gettop( oped );

    printf ( "%d", m );

  5. 匿名用户2024-01-27

    #include

    int main()

    int i;

    int j;

    for(i=0;i<12;i++)

    for(j=0;j!=0)

    printf("%d,",a[i]);

    如果数组中有 0,我不想使用此方法,如果数组中有 0,您可以放置 a[i]=0 和 if(a[i]!)。=0) 添加到另一个数组中不存在的数字。

  6. 匿名用户2024-01-26

    我正在使用字符数组... 事实上,方法是一样的。 #include#include

    #define maxsize 100int main()i--;

    i = 0;

    while( array[i] != '\0' )printf( "" );

    return 0;}

  7. 匿名用户2024-01-25

    定义数组时删除不是很清楚吗? 看来你对数组的操作不是很清楚,所以在写入数组时应该删除数据。 你可以这样做,如果数组不大,在写入数据时,先遍历数组,看看数组中是否有该数据,如果没有数据,则不要将数据写入数组,如果没有,则将最后一个元素写入数组。

  8. 匿名用户2024-01-24

    使用双循环,将每个值与其后面的值进行比较,如果存在相同的值,则删除该元素。

    删除时,您可以依次将以下元素向前移动一位,同时将总长度减去 1。

    int remove_repeat(int *a, int l){int i, j, k;

    for(i = 0; i < l; i ++for(j = i+1; j

  9. 匿名用户2024-01-23

    我直接跟大家说说思路,如果双循环数组太大,非常耗时,可以,先对数组进行排序,再删除多余的数字,非常耗时,看看相邻的数字就行了。

  10. 匿名用户2024-01-22

    int i, j;

    int buf = ;

    int count = strlen(buf);

    for(i = 0; i < count; i++)buf[count] = '\0';

    我没有调试它,但我认为它很好!

    就是从数组中的第一个元素开始找一样的,如果相同,就把同一个元素换成数组的最后一位,把下一个相同和数组的倒数第二位交换,最后把计数位改成'0',最后打印出数组。

  11. 匿名用户2024-01-21

    输出第一个元素,然后将下一个元素与前一个元素进行比较,如果相等,则继续循环,并使用 for 语句输出不相等的元素。

  12. 匿名用户2024-01-20

    delete(int*, int),但你调用 delete(*p, m),p 是指针,*p 是值;

    int a,a 是指针,指向数组地址,for 循环 in p=&a error。

    0'是 C 中 char* 的终止符,并且数组的长度是固定的,要删除数组中的一个元素,就必须重新分配内存。

    4.在 delete 中,i 在 for 结束之后等于 6,并且 *(p+i+1) 不是数组中的值。

  13. 匿名用户2024-01-19

    #include

    #define n 1000

    定义标志0x80000000 *特殊标志,由最小的负数表示*

    void main( )

    for(i = 0; r[i] != flag;i++) 找到第一个特殊标记

    for(j = i + 1; j < length;从序列中删除特殊标记

    length = i;* 删除重复值后修改数组的长度 * for(i = 0; i < length; i++)printf("%-4d", r[i]);

相关回答
6个回答2024-07-31

程序已经修正,可以运行成功,希望kutpbpb能帮到你! >>>More

6个回答2024-07-31

1. scanf("%d",a[n]);a[n] 只能在定义时使用,不能在普通使用中使用,例如,如果你现在 n 是 10,a[10] 是越界的,因为数组范围只有 a[0] 到 a[9],而 u"%d",您还需要使用地址字符 &,您必须为 10 个下标中的每一个分配值,并且必须使用循环。 例如: >>>More

10个回答2024-07-31

此错误表示等号附近存在语法错误。

例如if(x=0),这句话可能会提示这个错误,因为一个等号是赋值,两个等号等于意义,if是判断语句,所以需要用两个等号,一个是赋值,而不是判断。 >>>More

12个回答2024-07-31

可以使用Shuttle TXT文本数据台处理百宝箱,百宝箱具有文本重复数据删除工具,可以快速处理重复数据,只需几秒钟即可完成数百万条数据。 >>>More

23个回答2024-07-31

如果此表中有 3 个字段,则一个是 a、b 和 c

你可以这样查找。 >>>More