c语言:从数组中删除数据

2024年11月16日 07:50
有2个网友回答
网友(1):

分别弄了一个,看看吧,希望对你有用:
排序:
#define N 10
main()
{int i,j,min,tem,a[N];
/*input data*/
printf("please input ten num:\n");
for(i=0;i{
printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf("\n");
for(i=0;iprintf("%5d",a[i]);
printf("\n");
/*sort ten num*/
for(i=0;i{min=i;
for(j=i+1;jif(a[min]>a[j]) min=j;
tem=a[i];
a[i]=a[min];
a[min]=tem;
}
/*output data*/
printf("After sorted \n");
for(i=0;iprintf("%5d",a[i]);
}
按序插入:
main()
{
int a[11]=;
int temp1,temp2,number,end,i,j;
printf("original array is:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insert a new number:");
scanf("%d",&number);
end=a[9];
if(number>end)
a[10]=number;
else
{for(i=0;i<10;i++)
{ if(a[i]>number)
{temp1=a[i];
a[i]=number;
for(j=i+1;j<11;j++)
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
for(i=0;i<11;i++)
printf("%6d",a[i]);
}
查找并删除:
#include
main()
{int i,j,k;
int s[10],a;
printf("input 10 numbers:\n");
for(k=0;k<10;k++)
scanf("%d",s[k]);
printf("input a number:\n");
scanf("%d",&a);
for(i=j=0;i<10;i++)
if(s[i]!=a) s[j++]=s[i];
for(i=0;i printf("%d",s[i]);
}
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。

网友(2):

#include
#define N 10
void main( )
{
int a[N] , num ,i , *p , n=N;
int j;

/*输入N个数到数组a中;*/
for(i=0;i{
scanf(“%d”,&num);
a[i]=num;
}

/*在数组a中删除指定的数num;*/
for(i=0;i{
if(a[i] == num)
{
//a[i]=a[n];//如果不保留原数组里的顺序,此一句即可代替下边2行语句,同时省掉变量j

for(j=i;j a[j]=a[j+1];

n--;
}
}

/*输出删除了num后的数组a;*/
for(i=0;i printf("%d ",a[i]);

getchar();
}