一宴猾、學(xué)習(xí)目的
掌握如何定義一個數(shù)組,避免定義數(shù)組時容易出現(xiàn)的問題,并且學(xué)會對數(shù)組里面的元素進行訪問和賦值,學(xué)會將數(shù)組相關(guān)知識融入到小的項目中陌兑,進一步加深知識的理解程度软驰。
二锭亏、學(xué)習(xí)內(nèi)容
基本數(shù)據(jù)類型 | 數(shù)組 |
---|---|
只能儲存一個數(shù)據(jù) | 需要儲存多個同種類型的數(shù)據(jù) |
1. 能夠存儲數(shù)據(jù) 必須有內(nèi)存
2. 如何定義一個數(shù)組的同時為它分配內(nèi)存空間
3. 數(shù)組定義時必須明確知道數(shù)組的大小
- 初始化
//定義一個數(shù)組 里面存的都是float類型 可以存4個數(shù)據(jù)
//4*4bytes = 16bytes
float score[] = {2,55,66,2345};
// 訪問第一個元素的值
score[0]
//獲取第一個元素的地址.
&score[0]
//使用%p打印地址. 結(jié)果相同
printf("%p\n",&score[0]);
printf("%p\n",score);
- 在定義時明確指定數(shù)組的大小
int temp1[5];
- 明確指定大小 并且初始化
int temp2[5] = {1,2}; //初始化了部分值。其余的值可能是0蒙畴,也可能是其他未知值
4. 數(shù)組的名字就是數(shù)組的首地址(第一個元素的地址)
- 如何使用數(shù)組
//訪問 通過下標來訪問 0~n-1
printf("%d\n",temp2[2]);
//賦值
temp2[1] = 6;
三贰镣、項目實戰(zhàn)
Demo1:給一個數(shù)組賦值為1~100,并計算數(shù)組元素之和
int number[100] = {};
int sum = 0;
//1. for循環(huán)實現(xiàn)
for (int i = 0; i < 100; i++) {
number[i] = i + 1;
sum +=number[i];
}
//2. while循環(huán)實現(xiàn)
int i = 0;
while (i < 100) {
number[i] = i + 1;
sum = sum + number[I];
i++;
}
//3. do-while循環(huán)實現(xiàn)
do {
number[i] = i + 1;
sum = sum + number[i];
i++;
} while (i < 100);
printf("sum = %d\n",sum);
Demo2:從鍵盤輸入一個十進制整數(shù),輸出時分別轉(zhuǎn)化為二進制數(shù)和十六進制數(shù)
//進制轉(zhuǎn)換
//終端輸入一個數(shù)字
//將這個數(shù)字的二進制和16進制輸出
int num = 0;
printf("請輸入一個整數(shù):\n");
scanf("%d",&num);
轉(zhuǎn)化為二進制
int result[10] = {};
int i = 0;
int temp1 = num;
while (temp1 != 0) {
//將余數(shù)保存在數(shù)組中
result[i] = temp1%2;
temp1 /=2;
if (temp1 == 0) {
break;
}
I++;
}
//根據(jù)下標由高到低依次輸出結(jié)果
for (int j = i; j >= 0; j--) {
printf("%d",result[j]);
}
//轉(zhuǎn)化為十六進制
int result[10] = {};
int i = 0;
int temp2 = num;
while (temp2 != 0) {
result[i] = temp1%16;
temp2 /=16;
if (temp2 == 0) {
break;
}
I++;
}
for (int j = i; j >= 0; j--) {
//如果大與或等于10拴疤,則輸出為ABCDEF
if (result[j] >= 10) {
printf(""%c",'A'+result[j]-10");
}else{
//否則正常輸出
printf("%d",result[j]);
}
}
四蜒犯、心得體會
Demo1比較簡單些,思路很清晰;但Demo2沒有很好的利用取整和取余以蕴,邏輯不清晰,導(dǎo)致想了很久魄缚,還是需要加強代碼邏輯的熟練度宝与,對于這方面可以多學(xué)習(xí)學(xué)習(xí)東哥拿到一個項目和對某個模塊的邏輯思維,慢慢地形成自己的思維冶匹。
Fighting