各位看看我哪里错了,数组题
【问题描述】编写函数,从一个排好序的整形数组中删去某数。【输入形式】
输入共两行,数字均为正整数
第一行为10个数字,以空格分割
第二行为1个要删除的数字
【输出形式】
输出共一行,分为两种形式:
1)删除成功
以空格分割的删除后的数字序列
2)删除失败
“fail!”(不含引号)
【样例输入】
1 2 3 4 5 6 7 8 9 10
10
【样例输出】
1 2 3 4 5 6 7 8 9
我的源码:
#define N 10
#include "stdio.h"
int dele(int str[],int y)
{
int i,j,p=0;
for (i=0;i<N;i++)
if(str[i]==y)
{j=i;p=1;break;}
if(p==1)
for(;j<N-1;j++)
str[j]=str[j+1];
return p;
}
void main()
{
int i,j,t,a[N],x;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(j=i;j<N;j++)
if(a[i]>a[j])
{
t=a[i];a[i]=a[j];a[j]=t;
}
scanf("%d",&x);
if(dele(a,x))
for(i=0;i<N-1;i++)
printf("%d ",a[i]);
else
printf("fail!");
}