数组元素删除问题
#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;
}
为神魔数组没变化呢 代码逻辑不对,第二个for不应该放到第一个for里面 本帖最后由 风过无痕丶 于 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]