-
如果你只需要演算法,那麼你用C也沒關係,對吧?
#include
#include
#include
#define students 40
#define r 10
int main()
int score[students];
int count[r+1]=;
int i,j;
srand(time(null));
for(i=0;i
#include
#include
#include
#define students 40
#define r 10
using namespace std;
int main()
int score[students];
int count[r+1]=;
int i,j;
srand((unsigned)time(null));
for(i=0;icount[score[i]]+
for(i=1;i<=r;i++)
cout
-
所謂陣列,就是一組同資料型別的元素按一定順序排列,即用名稱命名有限數量的相同型別的變數,然後用數字來區分它們的變數。 組成陣列的各個變數稱為陣列的組成部分,也稱為陣列的元素,有時也稱為下標變數 unrooted。 陣列是一種程式設計形式,它以有序的形式組織多個相同型別的變數,以便於處理。
這些同類資料元素的順序集合稱為陣列。
-
1.首先,我不需要問這樣的問題。 你可以自己解決它,你用 str 替換 str[4],你將輸出乙個陣列。
因為 str 本身就是乙個指標,再加上指標章節的知識,%s 實際上輸出了所有以 str 指標開頭的數字。
2.了解了指標和陣列的關係,可以自己寫乙個char *p; 然後指向陣列,然後 printf p+3 輸出 str 的第四個字元。
3.將 %s 改為 %c 輸出你想看到的結果,%c 輸出乙個字元,%s 輸出你從指標輸出到末尾的所有字元,例如,以你為例,if printf(“%s”,str); 是輸出str指標後的所有字元,if printf(“%s”,str+2); 這就是 str[2] 之後的所有字元。
關鍵是要了解指標和陣列之間的關係。 char str[100] 就是在記憶體中為 100 個 char 變數分配空間,然後用指標 str 指向他,陣列的名稱其實是乙個指標,指向陣列的開頭。
-
str[4] 是乙個字元。
str+4 是乙個位址。
s 列印時必須使用位址,因此將其更改為 str+4。
-
str[4] 是對應位址的值,str +4 也是位址指標。
-
C++ 中的陣列具有一些簡單的功能:
1.每個元素型別都是一樣的; 也就是說,陣列元素的長度相同;
2、陣列占用連續儲存空間;
3.陣列占用空間的第乙個位址是陣列的名稱;
4.使用下標引用陣列中的每個元素;
5. 陣列中的每個元素實際上都等價於乙個自變數(空間)。
-
陣列是乙個連續的記憶體,總大小是變數型別占用的位元組數 * 陣列元素的數量。
-
將陣列視為連續的儲存。
-
你書中的解釋已經告訴你答案了,x和數字是兩個自變數,也就是說,它們都佔據了記憶體中的兩個空間塊,任何乙個空間的值都在變化而不影響對方。
而y是乙個陣列,y代表陣列的名稱,陣列的名稱代表陣列的起始位址,number是乙個指標,它指向陣列,指標可以通過它的位址找到它的記憶體空間位置,然後改變它的值,給number[0]賦值,這就改變了陣列y的第乙個元素。
你可以用一維陣列來模擬,也可以自己計算下標,因為不管你定義多少維,在記憶體中都是線性的,比如C儲存在安星中,也有基於列的儲存,比如fortran語言,你定義多維,但是編譯器幫你計算下標, 所以你可以用一維陣列自己模擬,比如用int a[10]模擬int b[5][2],a[0]是b[0][0] a[5]是b[2][1] a[9]是b[4][1] >>>More
當我們寫 int a[10] 時,從邏輯上講,a 中什麼都沒有。 我們希望 A 陣列中有元素(或者還有什麼輸出? ),所以有第乙個 for,讓 a[0]=0, a[1]=1.... >>>More