C语言删除数组指定元素

C语言删除数组指定元素
#include
main()
{int i,j,n;
int a[10];
printf("请输入需要删除的数:\n");
scanf("%d",&n);
printf("请输入10个元素的数组: \n");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
for (i=0;i<10;i++)
if (a[i]==n)
for (j=0;i+j<9;j++)
a[i+j]=a[i+j+1];
for (i=0;i<10;i++)
printf("%5d",a[i]);
}

这个是我?代码。。。
但是试了不行。。。。。。
望大虾帮忙修改下。。。
谢谢了
我没财富积分了
有了绝对追分!!!谢谢了

C语言删除数组指定元素的源代码如下:埋答含

#include

main()

{

char s[80],c;

int j,k;

printf(" Enter a string: ");

gets(s);

printf(" Enter a character: ");

c=getchar( );

for(j=k=0;s[j]!= '';j++)

if(s[j]!=c)

s[k++]=s[j];

s[k]= '';

printf(" %s ",s);

system("pause");

}

扩展资料

自定义函数举悔代码弯笑如下

function delarrayval2($arr,$v){

$keyarr = array_keys($arr, $v); 

if(count($keyarr)){ 

foreach ($keyarr as $key) { 

unset($arr[$key]); 

}

} 

return $arr;

}


只要将删除后的数据元素像前移动一位即可。

#include 

// 删除长度为len的数组dat中索引为idx的元素。
void remove(int *dat, int *len, int idx)
{
    (*len)--;
    if (idx < 0 || idx >= *len)
        return;
    for (int i = idx; i < *len; i++)
        dat[i] = dat[i+1];
}

void output(int *dat, int len)
{
    for (int i = 0; i < len; i++)
        printf("%d ", dat[i]);
    printf(" ");
}

int main()
{
    int a[10]= {0, 1, 2, 3, 4, 5, 亏凳6, 7, 8, 9}, len = 10;
    remove(a, &len, 5);
    output(a, len);
    remove(a, &len, 2);
    output(a, len);
 销弯旅   return 闹昌0;
}


void main()
{
int i,j,n;
int a[10];
int k=0; //记录删除数据的个数

printf("请输入需要删除的数:\n");
scanf("%d",&n);
printf("请输入10个元素的数组: \n");
for (i=0;i<10;i++)
scanf("%d",&a[i]);
for (i=0;i<10;i++)
if (a[i]==n)
{
for (j=0;i+j<9;j++)
a[i+j]=a[i+j+1];
k++;/基行/删除数据的个数加1
a[10-k] = 0; //清除最宽吵后一个已经前移过的数据
}

for (i=0;i<10-k;i++)//输出剩余的数据,后面的数据为0代表已经被删除的无意义搏巧哗数据,不必再输出了。
printf("%5d",a[i]);
}
就是我们不会诉诉,也不会删除的一个软件吧
for (j=0;i+j<瞎嫌猛9;j++)
a[i+j]=a[i+j+1];
这者兄段不对磨桥

for(j =i; j <9; j++)
{
a[j] = a[j+1];
}
← 上一篇: 下一篇: →