溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語言中刪除數(shù)組中某個(gè)元素的方法

發(fā)布時(shí)間:2020-06-17 14:22:39 來源:億速云 閱讀:11942 作者:鴿子 欄目:編程語言

C語言實(shí)現(xiàn)刪除數(shù)組中某個(gè)元素

大家知道C語言實(shí)現(xiàn)刪除數(shù)組中某個(gè)元素方法嗎?下面將講述在C語言中實(shí)現(xiàn)刪除數(shù)組中某個(gè)元素的兩種方法,大家一起看看吧。

方法1:

 /* 
 name: c語言  刪除數(shù)組的某個(gè)元素 
 tip:
   數(shù)組元素的增/刪/      改/查(簡(jiǎn)單遍歷就ok) 
   數(shù)組增刪操作在c語言中沒有相應(yīng)的函數(shù)------我們最好是 自己寫個(gè)函數(shù)保存好 
   注意代碼縮進(jìn),對(duì)齊 
*/
#include<stdio.h>
int main()
{
//刪
int arr[]={1,3,10,5,4,} ;
int delect=0;
int i=0,j=0,k=0;
int n;//n為數(shù)組長(zhǎng)度 
n=sizeof(arr)/sizeof(int);
//printf("%d\n",n);//測(cè)試n
 
 printf("刪除前數(shù)組為:");
 for(k=0;k<=n-1;k++)
 {
  printf("%4d",arr[k]);
  
 }
 printf("\n");
 
 
//輸入提示:
printf("請(qǐng)輸入要?jiǎng)h除的數(shù):");
scanf("%d",&delect); 
for(i=0;i<=n-1;i++)
   {    
    if(delect==arr[i])
       {
       for(j=i;j<=n-2;j++)
          {
          arr[j]=arr[j+1];//覆蓋 
}  
  // goto loop1; 
}/*執(zhí)行完這個(gè)if引導(dǎo)的代碼塊后,刪除工作已ok了,但程序還會(huì)把循環(huán)跑完,
會(huì)自然想到break ,但仔細(xì)一想,不好控制,不行,,,
最好的解決方法-goto  或  記錄下標(biāo),出循環(huán)后處理這個(gè)下標(biāo) 
 
*/
}
/*
此處 也可以使用 記錄下標(biāo)delectindex的方法 ---推薦使用,因?yàn)樯厦娴?
代碼在執(zhí)行的時(shí)候 會(huì)多run些無用的步驟,具體見上面的注釋 
*/
    //loop1: 
printf("刪除后數(shù)組為:");
for(k=0;k<=n-2;k++)
   {
    printf("%4d",arr[k]);
}
printf("\n");
 
return 0;
}

方法2:記錄下標(biāo)

/* 
 name: c語言  刪除數(shù)組的某個(gè)元素 
 tip:
   數(shù)組元素的增/刪/      改/查(簡(jiǎn)單遍歷就ok) 
   數(shù)組增刪操作在c語言中沒有相應(yīng)的函數(shù)------我們最好是 自己寫個(gè)函數(shù)保存好 
   注意代碼縮進(jìn),對(duì)齊 
*/
#include<stdio.h>
int main()
{
//刪
int arr[]={1,3,10,5,4,} ;
int delect=0;
int delectIndex=0;
int i=0;//相比于上一個(gè)代碼,少定義了k,j,---這種用來控制循環(huán)的變量,在不是嵌套的情況下,可以只定義一個(gè)
//(盡量少定義變量,減少內(nèi)存占用) 
int n;//n為數(shù)組長(zhǎng)度 
n=sizeof(arr)/sizeof(int);
//printf("%d\n",n);//測(cè)試n
  
 printf("刪除前數(shù)組為:");
 for(i=0;i<=n-1;i++)
 {
  printf("%4d",arr[i]);
  
 }
 printf("\n");
 
 
//輸入提示:
printf("請(qǐng)輸入要?jiǎng)h除的數(shù):");
scanf("%d",&delect); 
for(i=0;i<=n-1;i++)
   {    
    if(delect==arr[i]) delectIndex=i;//記錄要?jiǎng)h除元素的下標(biāo) 
  }
  
  
for(i=delectIndex;i<=n-2;i++)
  {
  arr[i]=arr[i+1];
  }
  
  //想知道較為具體的執(zhí)行過程---debug  或  寫些printf(建議使用) 
   
printf("刪除后數(shù)組為:");
for(i=0;i<=n-2;i++)
   {
    printf("%4d",arr[i]);
}
printf("\n");
 
return 0;
}

更多相關(guān)知識(shí)點(diǎn)文章:

C語言如何刪除數(shù)組中的重復(fù)元素

C語言中用一維數(shù)組完成去掉最大值和最小值并求出平均值的示例

以上就是C語言實(shí)現(xiàn)刪除數(shù)組中某個(gè)元素的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI