和删除数组中重复的值类似
#include<stdio.h>
int newlen(int *shuzu,int size,int val)
{
int newlen=0;
for(int i=0;i<size-newlen;i++)
{
if(shuzu[i]==val)
{
if(i==size-1)
{
newlen++;
i=0;
}
else
{
for(int a=i;a<size-newlen-1;a++)
{
shuzu[a]=shuzu[a+1];
}
newlen++;
i=0;
}
}
}
return size-newlen;
}
int main()
{
printf("请输入数组大小:");
int n;
scanf("%d",&n);
printf("输入数据:\n");
int nums[n];
for(int i=0;i<n;i++)
{
scanf("%d",&nums[i]);
}
printf("输出数组:\n");
for(int i=0;i<n;i++)
{
printf("%d\t",nums[i]);
}
printf("\n");
int val;
printf("请输入目标值:");
scanf("%d",&val);
int len=newlen(nums,n,val);
if(len==n)
{
printf("没有相同数据\n");
}
printf("输出数组:\n");
for(int i=0;i<len;i++)
{
printf("%d\t",nums[i]);
}
}
没什么大问题,记一个知识点,变量名不能和函数名一样