C语言删除数组中的元素

int removeElenment(int A[],int n,int elem){
int i,j;
for(i=0;i<n;i++){
if(A[i]==elem){
n--;
for(j=i;j<n;j++)
A[j]=A[j+1];
}}
return n;
哪错了,如何改正

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

#include <stdio.h>

main()

{

char s[80],c;

int j,k;

printf("\nEnter a string: ");

gets(s);

printf("\nEnter a character: ");

c=getchar( );

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

if(s[j]!=c)

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

s[k]= '\0';

printf("\n%s\n",s);

system("pause");

}

扩展资料

自定义函数代码如下

function delarrayval2($arr,$v){

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

if(count($keyarr)){ 

foreach ($keyarr as $key) { 

unset($arr[$key]); 

}

return $arr;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-15
int removeElenment(int A[],int n,int elem){
  int i,j;
  for(i=0;i<n;i++){
    if(A[i]==elem){
      n--;
      for(j=i;j<n;j++)
      A[j]=A[j+1];
  }}
  return n;
  }

有个分号是中文的

另外 结尾少了一个}

除了这个函数 你还要写一个主函数才行。

追问

int main(){
int n;
scanf("%d",&n);
int a[n],i;
for(i=0;i<n;i++)
scanf("%d",a[i]);
int m;
scanf("%d",&m);
printf("%d\n",removeElenment(a,n,m));
return 0;
}一事不烦二主了,您再给我说说数组的输入?

追答

这个输入 应该没什么问题吧。
看起来是正常的。

追问

我输入 5
1,2,3,4,5
3
输出是3
。。。

追答int main(){
  int n;
   scanf("%d",&n);
  int a[n],i;
   for(i=0;i<n;i++)
    scanf("%d",&a[i]);//这里用&a[i]
  int m;
   scanf("%d",&m);
  printf("%d\n",removeElenment(a,n,m));
  return 0;
}

本回答被提问者和网友采纳
第2个回答  2016-06-19
你是想问什么呢。。。追问

不能运行啊
一运行说什么流浪的文件

相似回答