⑴ c語言刪除數組元素
/*我寫了兩種方法!!!方法一*/
#include
<stdio.h>
int
main()
{
int
a[10]={1,3,3,2,5,1,1,5,6,6};
int
i,j,k,x=10;/*x為數組中無重復有效元素的個數*/
for(i=0;i<x;i++)
{
for(j=i+1;j<x;j++)
{
if(a[i]==a[j])
{
x--;//發現重復時減1
for(k=j;k<x;k++)//移動數組
{
a[k]=a[k+1];
}
j--;
}
}
}
for(i=0;i<x;i++)printf("%d",a[i]);
printf("\n");
return
0;
}
/******************************************************************************
*
再寫一種方法!!!
*此方法是把所有重復的都標識出來,然後生成一個新的無重復元素的數組
*******************************************************************************/
#include
<stdio.h>
#define
flag
-1//此外定義了一個標識。把重復的無素賦值為此標識。
int
main()
{
int
a[10]={1,3,3,2,5,1,1,5,6,6};
int
b[10];//用於存儲有無重復元素的數組。
int
i,j,x=10;//x為無重復有效元素個數
for(i=0;i<10;i++)
{
if(a[i]!=flag)//如果標識過了,就不比較了
{
for(j=i+1;j<10;j++)
{
if(a[i]==a[j]&&a[j]!=flag)
{
a[j]=flag;
x--;//標識一個重復項,有效無素減少一個
}
}
}
};
for(i=0,j=0;i<10;i++)//把非標識的元素,給數組b[];
{
if(a[i]!=flag)
{
b[j]=a[i];
j++;
}
};
for(i=0;i<x;i++)printf("%d",b[i]);
printf("\n");
return
0;
}
⑵ c語言:從數組中刪除數據
分別弄了一個,看看吧,希望對你有用:
排序:
#define N 10
main()
{int i,j,min,tem,a[N];
/*input data*/
printf("please input ten num:\n");
for(i=0;i<N;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf("\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
/*sort ten num*/
for(i=0;i<N-1;i++)
{min=i;
for(j=i+1;j<N;j++)
if(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;i<N;i++)
printf("%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<stdio.h>
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<j;i++)
printf("%d",s[i]);
}
我可以幫助你,你先設置我最佳答案後,我網路Hii教你。
⑶ 用c語言函數刪除數組中的數據
既然是數組,表示數據為線性陣列了,想刪除其中一個數據,是不可能的,只能用該位置以後的數據整體平移一個位置覆蓋當前位置。例如:數組數據 1 2 3 4 5 6 7,想刪除3,那麼得到的新數組為1 2 4 5 6 7,其中 4 5 6 7 數據的位置相對原始數組位置整體平移減小1。
當然想是想快速刪除數據,可以考慮使用數據鏈表,對數組單鏈即可
⑷ C語言代碼怎麼刪除數據
#include<stdio.h>
int main()
{
int a[10]={90,89,78,77,66,55,44,33,22,11};
int x;
scanf("%d",&x);//輸入要刪除的數
for(int i=0;i<10;i++)
if(a[i]==x)
a[i]='