null第五章 第五章 数 组
回 顾C语言的三种基础结构
顺序结构
选择结构
循环结构
C语言的六种语句
赋值语句
函数调用语句
达式语句
复合语句
字符输入/输出语句
输入/输出语句 回 顾回顾 2-2 回顾 2-2 break 语句用在循环中时,可以直接终止循环,将控制转向循环后面的语句
continue 语句的作用是跳过循环体中剩余的语句而执行下一次循环
嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内
目标 目标熟练使用一维数组
简单使用二维数组
熟练使用字符数组
熟练使用字符串
为什么要使用数组3-1为什么要使用数组3-1 唉,有这么多不同主题的
。在哪里才能找到有关中国音乐的书呢?为什么要使用数组3-2为什么要使用数组3-2文学类计算机类西方音乐类中国音乐类为什么要使用数组3-3为什么要使用数组3-3数组的元素容器中保
存的物品日常生活中的容器程序中的数组C 语言中的数组C 语言中的数组数组是可以在内存中连续存储多个元素的结构
数组中的所有元素必须属于相同的数据类型3
2
1
0Rate[ 4 ]数组名下标标明了元素在数组中的位置 数组元素下标数组大小数组类型 2-1数组类型 2-1一维数组多维数组示例:学员单门课程的成绩学号科目示例:学员两门课程的成绩数组类型 2-2数组类型 2-2声明一维数组声明一维数组datatype arrayName[size];类型说明符
int、char、float …数组名常量表达式:
数组大小int num[50];
char list_of_initials[20];
double pressure_level[6];# define LIMIT 20
. . .
int emp_codes[LIMIT];null一维数组的引用
数组必须先定义,后使用
只能逐个引用数组元素,不能一次引用整个数组
数组元素表示形式: 数组名[下标]
其中:下标可以是常量或整型表达式例 int i=15;
int data[i]; (不能用变量定义数组维数)例 int a[10];
printf(“%d”,a); ()
必须 for(j=0;j<10;j++)
printf(“%d\t”,a[j]); ()例 int data[5];
data[5]=10; //C语言对数组不作越界检查,使用时要 注意null一维数组的初始化
初始化方式 在定义数组时,为数组元素赋初值
(在编译阶段使之得到初值) int a[5]={1,2,3,4,5};
等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;说明:
数组不初始化,其元素值为随机数
只给部分数组元素赋初值
当全部数组元素赋初值时,可不指定数组长度
如 int a[5]={6,2,3};
等价于: a[0]=6; a[1]=2;a[2]=3; a[3]=0; a[4]=0;
如 int a[3]={6,2,3,5,1}; () int a[]={1,2,3,4,5,6};
编译系统根据初值个数确定数组维数初始化一维数组初始化一维数组int emp_code[5] = {1299,1499,1699,1899,2099}; emp_code其他的初始化情况:
int arr[10] = {10,9,8,7,6,5,4,3,2,1,0}; //错误!越界了
int arr[10] = {9,8,7,5}; //正确,后面的6个元素未初始化
int arr[] = {9,8,7}; //正确:元素个数为 3
int arr[]={}; //错误,到底是几个元素? 为一维数组动态赋值为一维数组动态赋值float price[4];
printf(“Enter prices of 4 books\n”);
for (i = 0;i <= 3; i++)
{
scanf(“%f”,&price[i]);
}price12.341002.1017.511.12一维数组示例一维数组示例# include
void main()
{
int i;
float item_rate[5],total=0;
printf("\n 请输入商品价格:");
for(i=0;i<5;i++)
{
scanf("%f",&item_rate[i]);
total=total+item_rate[i];
}
printf(“\n 所有商品的合计费用:%f\n ",total);
} 循环执行 5 次请输入商品价格:35.50 45.8 23 40.7 8000Item_rate35.5035.5045.82340.7806225.0所有商品的合计费用:225.000000数组应用1数组应用1问题描述:
求一组数中的最大值和最小值 。void main()
{
int num[5],max,min,i;
printf("请输入5个数:\n");
for(i=0;i<5;i++)
scanf("%d",&num[i]);
max=num[0];
min=num[0];
for(i=1;i<5;i++)
{
if (maxnum[i])
min=num[i];
}
printf("\n最大值为:%d",max);
printf("\n最小值为:%d\n",min);
}读入5个值保存在数组中求最大值和最小值null例 用数组求Fibonacci数列前20个数#include
main()
{ int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{ if(i%5==0) printf("\n");
printf("%12d",f[i]);
}
}数组应用2数组应用2问题描述:
输入10个数,保存在一个数组中,在数组中查找某个数,给出是否找到的信息。如果找到了,输出该数在数组中所处的位置;如果找不到,输出“没有找到!”。 #define N 10
……
for(i=0;i总结总结数组是可以在内存中连续存储多个元素的结构数组中的所有元素必须属于相同的数据类型
数组必须先声明,然后才能使用。声明一个数组只是为该数组留出内存空间,并不会为其赋任何值
数组的元素通过数组下标访问
一维数组可用一个循环动态初始化,而二维数组可用嵌套循环动态初始化
二维数组可以看作是由一维数组的嵌套而构成的作业作业1、将1-100存入数组后按每行10个输出.
2、输入10个数,求其中的最大值和最小值