删除数组中为3的元素,找出错误
#include<stdio.h>void DELETEITEM(int a[],int &n,int item)
{
int i,k = -1;
for (i = 0; i<n;i++)
{
if(a==item)
{
k++;
}
else a = a;
}
n = n-k-1;
}
int main()
{
int a[] = {1,3,5,2,3,5,7};
DELETEITEM(a,7,3);
for (int i = 0;i < 8;i++)
{
printf("%d\n",a);
}
}
这是删除一个的,你要全部?#include<stdio.h>
void DELETEITEM(int a[], int &n, int item)
{
int i;
bool flag = 0;
for (i = 0; i < n; i++)
{
if(a == item)
{
flag = 1;
n--;
break;
}
}
if(flag)
{
for (; i < n; i++)
{
a = a;
}
}
}
int main()
{
int a[] = {1,3,5,2,3,5,7};
int n = sizeof(a)/sizeof(int);
DELETEITEM(a,n,3);
for (int i = 0;i < n;i++)
{
printf("%d ",a);
}
return 0;
} 这是删除全部的3#include<stdio.h>
void DELETEITEM(int a[], int &n, int item)
{
for (int i = 0; i < n; i++)
{
if(a == item)
{
n--;
for (int j = i; j < n; j++)
a = a;
i--;
}
}
}
int main()
{
int a[] = {1,3,5,2,3,5,7};
int n = sizeof(a)/sizeof(int);
DELETEITEM(a,n,3);
for (int i = 0;i < n;i++)
{
printf("%d ",a);
}
return 0;
} #include<stdio.h>
int DELETEITEM(int a[],int n,int item)
{
int i,j, count;
count=0; // 用来统计删了多少个
for (i = 0; i<n;i++)
{
if(a==item)
{
for(j=i; j<n-1;j++)
{
a= a;
}
count++;
}
}
return n-count; // 删了后数组的长度
}
int main()
{
int i, newLen;
int a[] = {1,3,5,2,3,5,7};
i=0;
newLen = DELETEITEM(a,7,3);
for (i = 0;i < newLen;i++)
{
printf("%d\n",a);
}
}
页:
[1]