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'結束輸出 將兩個數進行互換的方法有兩種形式 1 藉助中間變數完成,此方法直觀,易理解,使用最多2 不需要中間變數,通過變數身的運算完成交換。方法1 int a 2,b 3,t t a 先將a儲存到臨時變數t中 a b 將b儲存到a中 b t 將臨時變數中的原a值儲存到b中printf a d b d n a,... c語言不能對這個陣列賦值,只能通過遍歷陣列達到給陣列中每個元素賦值的目的。初始化的時候可以用inta 4 這樣給整個陣列元素賦值為0,若想給已初始化的陣列清零,也只能遍歷陣列。在c語言中,所謂的 清空 意思是 無視裡面的資料 而不是 讓裡面沒有資料 有時候可能需要把一個陣列清零,意思是全部資料都用0... 剛建立的陣列既不是null c程式沒有null這個概念,物件導向才有null 也不是0,是不確定 原來記憶體這塊放的什麼還是什麼,如果陣列你不初始化拿來就用,誰也不知道里面是什麼,c是不檢查的 null表示是空,即什麼也沒有。剛設立一個陣列時,裡面的元素是你定義陣列的型別,版數值不確定 例如 cha...在c語言中如何將兩個數進行互換,在C語言中如何將兩個數進行互換
c語言陣列怎麼清零,在C語言中如何把陣列清空
C語言裡怎樣判斷陣列裡的元素為空還是為