請問在C語言裡如何將陣列元素的個數設為輸入的值

時間 2021-07-08 21:18:38

1樓:聽時間流逝

我當初學c的時候有過和你一樣的想法,但是陣列的記憶體只能靜態分配,所以你必須指明陣列的大小。

比如:int a[10];

char ch = "i love china!"。

一個顯式指定大小,一個是隱式指定。

2樓:逐夢兮樂

這個陣列不能是變數,只能是常量,沒法設定的。

3樓:浪尖上打禪

這其實就是動態開闢陣列,需要使用到malloc函式#include

using namespace std;

void main()

for(int j=0;j

free(a);

}//看明白就懂了

4樓:暗號

不可以,陣列的個數不可以為一個變數

如過你不確定你需要幾個元素,你可以用指標操作

5樓:

int i[7];

for(int x ; x < 6 ;++x)

是這個意思嗎?

6樓:金色潛鳥

c/c++ 語言裡, 宣告 陣列大小時,只允許用常數,例如:

int a[10];

int b[5*4*3];

不允許用 變數。

如何將一個陣列元素的個數設為輸入的值呢,一般用動態分配。

int *a; // 宣告為指標。

知道大小n後, 用動態分配:

a = (int *) malloc(sizeof(int) * n);

接下來就可以 把 a 看成 你 宣告過 int a[n]; 了。

對初學者來說,你開個大陣列,多給些單元,就可以了。

例如,你估計 你的 n = 10 到 1000 範圍,你宣告 int a[2000]; 就怎麼也夠用了。

現代計算機用虛擬儲存,1000,2000 個單元,小意思了。

在c語言中,如何在陣列中插入一個數

7樓:匿名使用者

方法為:輸入一個資料x,將陣列中的資料與x逐一比較,如果大於x,記錄下資料的下標,然後此資料下標和其後的資料的下標都加一,相當於都向後挪一位,然後將x賦值給陣列的那個下標。

#include

int main()

int i, j, k, x, a[11] =(3, 6, 7, 9, 12, 14, 15, 27, 29, 31) ;

printf("插入前陣列的資料是:") ;

for(i=0;i<10;i++)

printf("%4d",a[i] ) ;

printf("\n") ;

printf("請輸入要插入的資料:") ;

scanf("%d",&x) ;

for(i=0;i<10;i++)

if(a[i]>x)

break;

for(j=9; j>=i; j--)

alj+1] =alj] ;

a[i]=x;

printf("插入後陣列的資料是:") ;

for(i=0; i<11; i++)

printf("%4d",[i] ) ;

return 0;

8樓:理暄妍果揚

程式1:這個是輸入10個數

先排序再插入一個數

再排序陣列

大小你可以自己更改

#include

void

main()

for(i=0;i<10;i++)

printf("%d

",a[i]);

scanf("%d",&m);

for(i=0;i<10;i++)

if(a[i]>m)

a[10]=m;

for(i=0;i<11;i++)

printf("%d

",a[i]);

printf("\n");

}程式2:如果題中已給排好序的陣列

不必自己輸入的話

#include

void

main()

;int

temp1,

temp2,number,end,i,j;

printf("array

a:\n");

for(i=0;i<10;i++)

printf("%5d",a[i]);

printf("\n");

printf("insert

date:");

scanf("%d",&number);

end=a[9];

if(number>end)

a[10]=number;

else

break;}}

}printf("now,array

a:\n");

for(i=0;i<11;i++)

printf("%d

",a[i]);}

9樓:傑遜漂流記

有一個已排好序(從大到小)的陣列有5個元素,從鍵盤輸入一個數,要求按原排序的規律將它插入到陣列中<5;i++) if(x2.

j=i; /*當這個數比當前數小時,用j記住當前位置,即j=i,中斷迴圈。……

10樓:招鵬鯨清可

#include"stdio.h"

#include"string.h"

void

main()

;//////////這裡定義陣列的時候,要寫上11,否則會認為該陣列只有10個元素,那樣的話,無法對其進行插入的。其他地方沒有錯誤

inti,j,temp,n;

for(i=0;i<10;i++)

for(j=0;j<9-i;j++)

if(a[j]>a[j+1])

printf("按從小到大的排列順序為:\n");

for(i=0;i<10;i++)

printf("%d

",a[i]);

printf("請輸入你想插入陣列的數字:");

scanf("%d",&n);

for(i=0;i<10;i++)

if(n

=i;j--)

a[j+1]=a[j];

break;

}a[i]=n;

for(i=0;i<11;i++)

printf("%d

",a[i]);

printf("\n");}

11樓:匿名使用者

樓主能說具體點嗎。有很多方法,比如用字串連線的函式,strc...什麼什麼的函式,還可以直接插入一個數,和陣列中的數比較大小

12樓:匿名使用者

比如在第n個數中插入一個m

c語言中如何依次輸入陣列中元素?

13樓:

#include

int main()

int a[17];

int i;

for(i=0;i<17;i++)

scanf("%d",&a[i]);

return 0;

14樓:匿名使用者

函式功能:把格式化的資料寫入某個字串

函式原型:int sprintf( char *buffer, const char *format [, argument] … );

返回值:字串長度(strlen)

例子:char* who = "i";

char* whom = "csdn";

sprintf(s, "%s love %s.", who, whom); //產生:"i love csdn. " 這字串寫到s中

sprintf(s, "%10.3f", 3.1415626); //產生:" 3.142"

15樓:

陣列下標是從0開始的,如果要輸入16個元素就應該開a[ 16 ]int a[ 16 ], i;

for ( i = 0; i <

每敲一個元素按一次回車或者空一個格都可以。

16樓:湛絹仝嫻淑

for(int

i=0;i<17;i++)

cin>>a[i];

這是c++得,不同得編輯器可能有些不同。可以把inti;放在外面

inti;

for(i=0;i<17;i++)

scanf("%d",&a[i]);

這是c語言得,可以試試。

17樓:4747哦

1.整型陣列輸入

int i,a[10];

for(i=0;i<10;i++)

......

整型陣列輸出

int i,a[10];

for(i=0;i<10;i++)

printf("%d",a[i]);

......

有指標變數時輸入

int i,a[10],*p;

for(p=a,i=0;i<10;k++)

scanf("%d",p++);

......

有指標變數時輸出

int i,a[10],*p;

for(p=a,i=0;i<10;k++)

printf("%d",a[i]); printf("%d",*(a+i));

printf("%d",p++);

......

字元陣列 :字串的輸入輸出

char str[10];int i;

for(i=0;i<9;i++)

間隔符,回車符和橫向跳格符(tab)都將作為字元被讀入

str[9]='\0'; //scanf無法從終端讀入\0,必須賦予串結束標誌

for(i=0;i<9;i++)

printf("%c",str[i]);

或char str[10];int i;

for(i=0;i<9;i++)

scanf("%s",str); //整串字元輸入,空格回車符作為輸入資料的分隔符不能讀入

printf("%s",str);//遇到第一個\0結束輸出

或char str[10];

gets(str); //空格可以讀入直到讀入一個換行符

char str[10];

puts(str);//從起始地址開始直到遇到第一個‘\0'結束輸出

c語言如何將賦值過的陣列置空,C語言 如何將一個賦值過的陣列置空

幻翼高達 需要準備的材料分別有 電腦 c語言編譯器。1 首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如 test.cpp。2 在test.cpp檔案中,輸入c語言 char a 10 hello a 0 0 printf s a 3 編譯器執行test.cpp檔案,此時字串被成功置空被列印。...

c語言如何將二維陣列中兩個元素交換位置

可以讓陣列進行轉置來實現,參考如下 public class testtransposition output new int col row for int i 0 i amp for int j 0 j amp output j i input i j return output public ...

c語言如何將一串字元資料寫入字串陣列

1 一個一個字元的賦值。或者用 strcpy函式來複制。strcpy函式中內部實現也是一個個賦值。2 字串以 0結束那是字串在計算機內的儲存結構,定義了字串計算機預設會在字串後加上 0做為字串結束標記,但是寫程式時並沒有顯式的寫出來。判斷是否為字串 字串都是用雙引號包含的。例如char string...