1.数组的概述
数组是包含给定类型的一组数据,并将这些数据存储在连续的内存空间,每个独立的数据被称为数组的元素。元素的类型可以是任意类型=>数组的类型由元素的数量和类型决定
1.1一维数组的初始化和定义
1)数组的定义决定了数组名,元素类型和元素个数
2)<类型> 数组名 [元素数量]
元素数量必须大于0的整数常量表达式
3)数组的元素的个数通过sizeof计算
2.数组在内存中的表
数组是从零下标开始的
3.一维数组的使用
数组在存储单元中是按顺序连续存放,任何一个元素都可单独访问,其标示方法是数组名+下标;数组名[整形表达式]:整形表达式可以是变量,常量,但类型必须是整型类型;
实例题:
将arr数组中的值给br:利用for循环可实现
3.1其他类型的数组
const int ar[5] = { 1,2,3,4,5 };//常性数组
char str1[10] = { "tulun" };//字符数组
char str2[10] = { 't','u','l','u','n' };
int* par[10] = { NULL };//int*类型数组
char* par1[10] = { NULL };//char*类型数组
4.一维数组的应用实例
查表法是将事先计算好的结果,存储在常量数组中,直接按下表取数据,节省运算时间是以空间换时间。
实例1:输入年月日,计算这一天是这一年的第几天
#include#include bool IsLeapyear(int year) { return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0); } int YearMonth_To_Day(int year, int month) { static const int day[] = { 29,31,28,31,30,31,30,31,31,30,31,30,31 }; if (month == 2 && IsLeapyear(year)) { month = 0; } return day[month]; } int Get_YMD_To_Sum(int year, int month, int day) { static const int sum[] = { 0,0,31,59,90,120,151,181,212,273,304,334,365 }; if (year < 1) { return -1; } if (month < 1 || month>12) { return -2; } if (day<1 || day>YearMonth_To_Day(year, month)) { return -3; } int total = sum[month] + day; if (month > 2 && IsLeapyear(year)) { total += 1; } return total; } int main() { int year = 0, month = 0, day = 0; int sum = 0; scanf_s("%d%d%d", &year, &month, &day); sum = Get_YMD_To_Sum(year, month, day); if (sum > 0) { printf("year %d month %d day %d=>sum %dn", year, month, day, sum); } if (sum < 0) { printf("error!n"); } return 0; }



