課外話:挫折是人生的常態,在我們遭遇疫情,不應一味放大痛苦讓其充塞心靈。我們要學會調適心絃,坦然面對,全國人民團結一致,就一定會戰勝疫情。祖國加油!武漢加油!!!
《你的答案》
——轉載自嗶哩嗶哩up主:養豬的小仙女丫頭
本節大綱
數組
程序的模塊化設計
數組
定義
所謂數組,是有序的元素序列。
[1] 若將有限個類型相同的變量的集合命名,那麼這個名稱爲數組名。組成數組的各個變量稱爲數組的分量,也稱爲數組的元素,有時也稱爲下標變量。用於區分數組的各個元素的數字編號稱爲下標。數組是在程序設計中,爲了處理方便,
把具有相同類型的若干元素按無序的形式組織起來的一種形式。 [1] 這些無序排列的同類數據元素的集合稱爲數組。
數組是用於儲存多個相同類型數據的集合。
注:引用自百度百科
描述:由基礎數據類型組成的相同類型數據的集合稱爲數組
本節我們回顧一下第一節基礎數據類型
基本數據類型:
八大數據類型結構都可組成數組,在派生數據類型中的結構體、共用體,指針類型都可以組成數組(後續學習)
數組在內存空間的存儲爲連續性存儲即一層數據挨着一層
舉圖示例:
內存的使用:
標準定義方法
方法一:(定義未初始化)
signed int a[10];//數組名爲a,類型爲有符號整型
signed short a[10];// 數組名爲a,類型爲有符號短整型
signed long a[10];// 數組名爲a,類型爲有符號長整型
unsigned int a[10];// 數組名爲a,類型爲無符號整型
unsigned short a[10];// 數組名爲a,類型爲無符號短整型
unsigned long a[10];// 數組名爲a,類型爲無符號長整型
char a[10];// 數組名爲a,類型爲字符型
float a[10];// 數組名爲a,類型爲單精度浮點型
double a[10];// 數組名爲a,類型爲雙精度浮點型
除此之位還有第二種定義數組的方法,以有符號整型爲例子(定義且初始化)
方法二:
int a[] = {1,2,3,4,5};//數組名爲a,類型爲int,大小爲5*4字節
int a[10] = {1,2};//數組名爲a,類型爲int,大小爲10*4字節
第三種(不常用,動態分配:即程序運行到這一步時開始分配空間)
方法三:
int *a = new int[5];//數組名爲a,類型爲int,大小爲5*4字節
注意:
數組名爲數組在內存中的地址,數組首元素存儲在數組名內存中的地址,第二個元素在第一個的基礎上+4個字節爲第二個元素存放的地址(int型)。
編程案例1
#include <stdio.h>
int main()
{
int i;
int a[5]={1,2,3,4,5};
for(i=0;i<5;i++)
printf("%d\n",a[i]);
printf("\n");
for(i=0;i<5;i++)
printf("%d\n",a[0]+i);
return 0;
}
案例輸出
輸出結果:
程序的模塊化設計
函數定義方法:
函數的定義:
返回類型 名字(形式參數表列)
{
函數體語句
return 表達式;
}
函數調用:
函數名(實際參數表列);
//引用自百度百科
種類
函數分爲 庫函數 和用戶自定義函數。
C語言爲了方便用戶編寫程序,爲用戶開發了大量的庫函數,其定義在.h文件中,用戶可以調用這些函數實現強大的功能。
函數的用法:
函數按常規應放在主函數前面,若主函數放在前面則要在主函數前寫函數聲明。
編程案例2
#include <stdio.h>
int minus(int x,int y)
{
return x-y;//返回x-y的值
}
int add(int x,int y)
{
return x+y;//返回x+y的值
}
int main()//主函數
{
int a,b;
printf("請輸入a的值");
scanf("%d",&a);
printf("請輸入b的值");
scanf("%d",&b);
printf("a+b=%d\n",add(a,b));//add(a,b)爲函數調用
printf("a-b=%d\n",minus(a,b));//minus(a,b)爲函數調用
return 0;
}
案例輸出
編程案例3
#include <stdio.h>
int add(int x,int y);//函數聲明
int minus(int x,int y);//函數聲明
int main()//主函數
{
int a,b;
printf("請輸入a的值");
scanf("%d",&a);
printf("請輸入b的值");
scanf("%d",&b);
printf("a+b=%d\n",add(a,b));//add(a,b)爲函數調用
printf("a-b=%d\n",minus(a,b));//minus(a,b)爲函數調用
return 0;
}
int minus(int x,int y)
{
return x-y;//返回x-y的值
}
int add(int x,int y)
{
return x+y;//返回x+y的值
}
案例輸出
由此可看出兩個程序是等效的,爲函數編寫的兩種方式
編程練習
int a[10]={1,2,3,4,5,6,7,8,9,10};
由以上分別計算輸出第一項與第二項的和、差、乘、除,第二項與第三項的和、差、乘、除,依次類推到第九項與第十項的和、差、乘、除。