昔日少年郎 发表于 2018-3-11 17:09:31

数组元素删除问题

#include <stdio.h>


int main()
{
    intarray[] = {4,85,3,234,45,345,345,122,30,12};
    int count = 10;
    int i;
    intdeletearray,deleteindex;
    printf("请输入要删除的元素:");
    scanf("%d",&deletearray);
    for (i = 0;i < count;i++)
    {
      if (deletearray == array)
      {
            deleteindex = i;
            break;
      }
      for (i = deleteindex;i < count - 1;i++)
      {
            array = array;
      }
    }
    printf("输出删除后的数组:");
    for (i = 0;i < count;i++)
    {
      printf("%d\t",array);
    }
    return 0;
}
为神魔数组没变化呢

BngThea 发表于 2018-3-11 17:40:15

代码逻辑不对,第二个for不应该放到第一个for里面

风过无痕丶 发表于 2018-3-11 17:57:17

本帖最后由 风过无痕丶 于 2018-3-11 18:00 编辑

#include <stdio.h>

int main()
{
        intarray[] = { 4,85,3,234,45,345,345,122,30,12 };
        int count = 10;
        int i;
        intdeletearray, deleteindex;
        printf("请输入要删除的元素:");
        scanf("%d", &deletearray);
        for (i = 0; i < count; i++){
                if (deletearray == array){
                        deleteindex = i;
                        // 如果循环内嵌~这个break就会停止整个循环~下面那个for就白瞎了~
                        break;
                        }
                }
                // 还有我觉得这个deleteindex变量可有可无。。
                for (i = deleteindex; i < count - 1; i++)
                {
                        //array = array; // 直接这么写 会复刻一堆你删除的元素
                        array = array;
                }
       
        printf("输出删除后的数组:");
        for (i = 0; i < count-1; i++) {
                // 既然遍历赋值都少赋值了一个,同样这里显示也要少显示一个
                printf("%d ", array);
        }
        return 0;
}
页: [1]
查看完整版本: 数组元素删除问题