C 陣列在年曆列印中的運用

2021-10-13 15:27:18 字數 3257 閱讀 5955

我家小朋友正在學c++陣列,所以呢自己就邊學邊寫點體會給他看,就以乙個列印年曆的例項幫他更好地理解和掌握陣列。剛好在2023年元旦寫完,現發出來與c初學者分享一下,有誤之處敬請諒解。

宣告乙個陣列的格式: type array[size];

#include int main(void)

;    char b="hello";

cout執行結果:

注1:結束符在定義中不寫出來的,但也可以寫成:

char b=; //不省掉{}

char b=;

看上圖執行結果,』\0』列印出來是空的,但它不是空格『 』。

注2:陣列的下標從0開始計!

int a[5]=;

即: int a[5];

a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; //最後乙個是a[4]

int b[6]= "hello";

即: int b[6];

a[0]=』h』; a[1]=』e』; b[2]=』l』; …; b[5]=』\0』; //最後乙個是b[5]

也就是array[size]的最後乙個元素是array[size-1]。

陣列可以在宣告時直接賦值,也可以乙個乙個地賦值。

如果陣列的值有某種規律就可以用迴圈來賦值:

int a[30];

for (i=0;i<30;i++) a[i]=i+1;

//把1~30賦值給a[0]~a[29]

如下,定義乙個3行5列的整型二維陣列int a[3][5];

它對應的元素為:

a[0][0] a[0][1] a[0][2] a[0][3] a[0][4]

a[1][0] a[1][1] a[1][2] a[1][3] a[1][4]

a[2][0] a[2][1] a[2][2] a[2][3] a[2][4]

定義完陣列後,一般就用二重迴圈來給它賦值。

#include int main(void)

//列表

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

for (j=0;j<5;j++)

函式返回整數1~7,對應星期一到星期日。

#include int weekday(int y,int m,int d)

int main(void)

//列表

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

for (j=0;j<7;j++);

另還要判斷是否閏年,如閏年則置二月天數days[1]為29。

int y = 2000;

if (y%4==0&&y%100!=0||y%400==0) days[1]=29;

輸出指定年份年曆表的**如下:

#include #include //呼叫dos清屏命令cls

int weekday(int y,int m,int d)

int main(void )

; //表頭

int days[12]=;

int i,j,k,y,w;

int month[6][7];

for(;;) //end initmon()

int main(void)

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

for (j=7;j<14;j++)

}

初始化月份陣列後,用多重迴圈控制行列來輸出各個月份,輸出時把小於1的數字都用空格替換。月份有兩種排列,橫排或豎排。特別要注意的是把握好迴圈變數與各行各列的月份數、日期數之間的函式關係。完成源**如下:

#include #include #include //呼叫system()函式 

using namespace std;

int year;

int month[6][14];

int days[12]=;

int weekday(int y, int m, int d)

void initmonth(int m1, int m2)

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

for (j=7;j<14;j++)

//大於月底日期的數字都置為0;

//每月第一天之前的都設成小於或等於0

}void row0col(void)

if (year==0) return 0;

} while(year<1900);

row0col();

do;int weekday(int y, int m, int d)

void initmonth(int m1, int m2, int m3)

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

for (j=7;j<14;j++)

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

for (j=14;j<21;j++)

}void row0col(void)

if (year==0) return 0;

} while(year<1900);

row0col();

do;int weekday(int y, int m, int d)

void initmonth(int year)

;days[1]=(year%4==0&&year%100!=0||year%400==0)?29:28;

for (m=0;m<12;m++) }}

}int main(void)

;int weekday(int y, int m, int d)

void initmonth(int year) }}

}int main(void)

;for(;;)

if (year==0) return 0;

} while(year<1900);

system("cls");

cout<

//修正2位數月份的寬度,"\b"為退格鍵backspace

} cout<0) //非正數用空格替代

cout執行結果如下:

也可以將上述**稍作修改,改為用豎排的格式輸出年曆,自己動手試試吧。(全文完)

Swift中陣列的運用

陣列寫法 var array 1,2,3 var array1 array 1,2 var array2 array 1,2 var array3 array 1,2 2.1 陣列訪問和插入 var array4 string a b c print array4 0 array4.insert d...

JS中陣列的運用

首先第一步需要的是建立乙個陣列 varshuzu1 new array 如果需要指定它的長度就要在括號內加 size 來指定陣列的長度,如果要賦值的話就要在括號裡不斷地疊加中括號然後賦值 shuzi0 shuzi1 shuzin 第二是陣列元素的訪問 首先獲取元素值var yuansuzhi arr...

c語言 陣列的運用

案例5.6 n 0 計數器 for j 1 j 5 j for j 1 j 5 j 行 printf n 習題16 i 4 i 2i 1 1 3 1 2 2 3 3 1 5 4 0 7 i 4 i 2i 1 3 1 5 2 2 3 1 3 1 for for i 1 i 5 i 行 for i 3 ...