導航:首頁 > 軟體知識 > c語言數組刪除兩個程序怎麼寫

c語言數組刪除兩個程序怎麼寫

發布時間:2023-01-18 08:47:34

⑴ 我在編寫一個c語言刪除數組的程序,就輸入數組中的一個數,然後將其刪除,我的代碼如下:

if(delethappy == happy[i])這句後多了分號,讓我找了大半夜,暈,以後仔細點。

⑵ C語言刪除數組元素

C語言刪除數組指定元素的源代碼如下:

#include <stdio.h>

main()

{

char s[80],c;

int j,k;

printf(" Enter a string: ");

gets(s);

printf(" Enter a character: ");

c=getchar( );

for(j=k=0;s[j]!= '';j++)

if(s[j]!=c)

s[k++]=s[j];

s[k]= '';

printf(" %s ",s);

system("pause");

}

(2)c語言數組刪除兩個程序怎麼寫擴展閱讀

自定義函數代碼如下

function delarrayval2($arr,$v){

$keyarr = array_keys($arr, $v);

if(count($keyarr)){

foreach ($keyarr as $key) {

unset($arr[$key]);

}

}

return $arr;

}

⑶ 用C語言實現一維數組中刪除第N個元素的程序怎麼寫

例6-2
將10個整數存入數組,刪除數組中的某個元素。例如,數組中有1,2,3,4,5,6,7,8,9,10共10個元素,刪除第5個元素後,數組中剩下9個元素1,2,3,4,6,7,8,9,10。
首先定義一個長度為10的int型數組,用來存放10個整數。用循環輸入數組的每個元素,以及要刪除元素的序號(假設序號為n)。
使用循環,將數組中序號n後的所有元素向前移動一位,然後刪除最後一個元素。這里要注意數組的下標是從0開始的,序號為n的數組元素,對應數組的下標應該是n-1。
讀者可以思考:如果本例是向數組插入一個元素,循環應該如何來寫?
main()
{
int
nArray[10],
i,num;
/*輸入10個整數*/
printf("\nPlease
input
10
integers:
");
for(i=0;i<10;i++)
scanf("%d",&
nArray
[i]);
/*輸入要刪除的元素序號*/
printf("\nPlease
input
sequence
number
of
the
element
to
delete:
");
scanf("%d",&num);
/*從nArray
[num](第num+1個元素)開始,依次向前移動一位*/
for(i=num;i<10;i++)
nArray
[i-1]=
nArray
[i];
/*刪除最後一個元素*/
nArray
[10]=0;
/*輸出處理後的數組,最後一位不需要輸出*/
printf("\nProcessed
array:
");
for(i=0;i<9;i++)
printf("%d
",
nArray
[i]);
}
程序運行後,輸入10個整數:
Please
input
10
integers:
1
2
3
4
5
6
7
8
9
10
Please
input
sequence
number
of
the
element
to
delete:
5
Processed
array:
1
2
3
4
6
7
8
9
10

⑷ C語言中怎樣實現對數組數據的刪除、修改

#include<stdio.h>
typedef struct Node{
int a,b;
}node;
node c[100];
int n;
void print(){
int i;
printf("\n當前數據:\n");
for(i=1;i<=n;i++){
printf("第%d組:a=%d,b=%d\n",i,c[i].a,c[i].b);
}
printf("\n\n");
}//輸出
void setnum(){
int i;
printf("輸入n,表示共有n組數據:\n");
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("輸入第%d組數據的兩個值a、b,用空格隔開:\n",i);
scanf("%d%d",&c[i].a,&c[i].b);
}
}//設置數據
void remove(){
int i,j;
printf("輸入i,表示要刪除第i數據:\n");
scanf("%d",&i);
for(j=i;j<=n-1;j++){
c[j]=c[j+1];
}//循環覆蓋,讓後一個覆蓋前一個,所以j最大值取n-1
n--;//結構體中的元素減少1個
}//刪除數據
void chang(){
int i,aa,bb;
printf("輸入i,a,b,表示要將第i組數據修改成a、b:\n");
scanf("%d%d%d",&i,&aa,&bb);
c[i].a=aa;
c[i].b=bb;//直接賦值修改
}//修改數據
main(){
int m;
while(1){
printf("輸入:1-輸入數據,2-修改數據,3-刪除數據\n 4-輸出數據,0-退出\n");
scanf("%d",&m);
if(m==0) break;
else if(m==1) setnum();
else if(m==2) chang();
else if(m==3) remove();
else if(m==4) print();
}
}

⑸ C語言數組 增刪改查 刪改兩個程序怎麼寫

這行代碼:數組=(結構記錄*)malloc的(的sizeof(結構記錄)* NUM); 是應用的內存結構記錄類型,你定義為int *,所以詮釋*數組轉換成結構記錄*數組,另有界定者外Num和我不記錄定義放在一起,否則,同一類型和記錄,是獨立的定義為:整型數,scanf函數(「%c」的,與數組[I]系數);改革為scanf函數(在「%f」,&陣列由[i]系數).

⑹ 怎麼從有十個元素的數組中隨機的刪除兩個用C語言

用隨機函數隨機出兩個介於1-10之間的數,然後調用數組刪除那兩個數
int i = radom()%10;
然後刪除該位置的的值
for(int j=i;j<10;j++)
{
a[j-i]=a[j];
a[10]=0;
}

⑺ c語言:從數組中刪除數據怎麼做

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

/*輸入N個數到數組a中;*/
for(i=0;i<n;i++)
{
scanf(「%d」,&num);
a[i]=num;
}

/*在數組a中刪除指定的數num;*/
for(i=0;i<n;i++)
{
if(a[i] == num)
{
//a[i]=a[n];//如果不保留原數組里的順序,此一句即可代替下邊2行語句,同時省掉變數j

for(j=i;j<n-1;j++)
a[j]=a[j+1];

n--;
}
}

/*輸出刪除了num後的數組a;*/
for(i=0;i<n;i++)
printf("%d ",a[i]);

getchar();
}

⑻ 用C語言實現一維數組中刪除第N個元素的程序怎麼寫

#include<stdio.h>

int main()

{

int arr[]={1,3,10,5,4,} ;

int delect=0;

int i=0,j=0,k=0,t;

int n;//n為數組長度

n=sizeof(arr)/sizeof(int);

//printf("%d ",n);//測試n

printf("刪除前數組為:");

for(k=0;k<=n-1;k++)

{

printf("%4d",arr[k]);

}

printf(" ");

printf("請輸入要刪除第幾個數: ");

scanf("%d",&t);

for(j=t-1;j<=n-2;j++)

arr[j]=arr[j+1];

printf("刪除後數組為:");

for(k=0;k<=n-2;k++)

{

printf("%4d",arr[k]);

}

}

(8)c語言數組刪除兩個程序怎麼寫擴展閱讀:

數組使用規則:

1.可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。

2.只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。

3.如不給可初始化的數組賦初值,則全部元素均為0值。

4.如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。

網路-數組

⑼ 用C語言編寫在一個數組中刪除指定元素的程序,以下是本人寫的一些代碼,由於初學,麻煩高手指點修改

#include <stdio.h>
#define ARR_SIZE 5
int Delete(int *a, int n, int x);

void main()
{
int a[ARR_SIZE-1], x, i, n;

printf("Please enter array numbers:\n");
scanf("%d", &n);

printf("Please enter array:\n");
for (i=0; i<n; i++)
{
scanf("%d", &a[i]);
}

printf("Please enter a number what you want to delet:\n");
scanf("%d", &x);

if( Delete(a, n, x) == -1 )
printf("can not find the number!\n") ;
else
{
printf("After delet %d:\n", x);
for(i=0; i < n - 1; i++)
{
printf("%d ", a[i]); // 不要加地址符,我還以為我編譯器壞了,囧
}
}
}

int Delete(int *a, int n, int x)
{
int *p=NULL, *pos=NULL;

for (p=a; p<a+n; p++)
{
if (*p == x)
break;
}

if( p >= a + n )
return -1 ;

for( ; p < a + n - 1 ; ++p ) //循環反了,後邊的數據會把前邊的覆蓋
{
*p=*(p+1);
}

return 0 ;
}

⑽ c語言數組元素的刪除

對於數組刪除,一般就是使用後面數組元素前移的操作,來覆蓋前一元素,達到刪除的效果。。。。

例如數組a[10],要刪除a[5]這個元素,那麼只需要把後面的元素前移一位就行了,也就是a[5]=a[6],a[6]=a[7],a[7]=a[8],這樣子a[5]這個元素的內容就會被全部抹殺掉了。。。。

不過這里存在一個問題,你一個結構體數組前移的時候,如何判斷有多少個元素要前移呢。。。。

所以我的做法是在結構體裡面定義一個標示符int flag。。。。

當對這個結構體數組元素賦值時,如a[10].name="KING" 時,那麼就是說下標值為10的元素是存在的,賦完值後,來個a[10].flag=1 來標記一下。。。。

這樣做的話,我們可以進行這樣的刪除操作了,如刪除下標值為5的元素——
int i=5;
for(int j=i+1;a[j].flag==1;i++,j++)
{
a[i]=a[j];
/* 結構體數組可以直接這樣子做,它會自動把a[i]裡面的變數等於a[j]裡面對應的變數 */
}
a[i].flag=0;
/* 如果你裡面原來有10個元素,那麼刪除了其中一個,那就剩下9個,a[9]那個位置應該為空,一一把裡面的元素清空太麻煩,直接把它的標示符flag等於0,就表示該位置為空的 */

閱讀全文

與c語言數組刪除兩個程序怎麼寫相關的資料

熱點內容
美團外賣代理運營怎麼賺錢 瀏覽:360
分金亭如何代理 瀏覽:784
橋梁技術措施費包括哪些 瀏覽:585
cpu中的少量數據是什麼 瀏覽:964
微博和小程序有什麼區別 瀏覽:933
純鹼在哪個交易所 瀏覽:236
oppo手機怎麼用usb數據線連接電視 瀏覽:174
小米l1和l5數據線哪個快 瀏覽:743
技術入股怎麼評估 瀏覽:638
如何查詢中國逆回購的交易記錄 瀏覽:802
集成牆板怎麼展示產品 瀏覽:455
注塑透明產品熔接痕怎麼調 瀏覽:747
2021國外缺什麼產品 瀏覽:423
同步數據線有什麼好處 瀏覽:986
什麼防脫生發產品好 瀏覽:353
哪裡可以學習無痕防滑技術 瀏覽:557
家庭日用清潔產品如何拍攝 瀏覽:433
內部交易如何定價外協價格管理 瀏覽:869
第二次考教資需要填哪些信息 瀏覽:814
物業公司的市場部是干什麼的 瀏覽:844