c语言(5)—数组(1)

一、流程控制补充:

1.双层for循环(外层循环一次,内层循环一遍)

for(A;B;C)

{

        for(D;E;F)

        {

                G;

        }

}

A为外层循环初始条件,通过判断B后进入内层循环,内层循环需经过若干个循环直至不符合E的条件结束循环后,再回到外层循环进入外层的第二次循环,以此循环直到不符合条件B后结束外层循环。

e.g.请打印一则九九乘法表

九九乘法表打印首先需要x*y,根据需要打印的格式判断出外层循环变量为y,内层循环变量为x,当y为1时进入内层循环,x需依次递增输出直到等于y时停止,每次内层循环都需输出一个表达式,在每一遍内层循环结束后需要换行。

2.goto循环

如图,在遇到goto时,程序会返回到goto后面词条的位置,借助if就能实现循环。

3.辅助控制语句

(1) break:跳出当前循环或者switch中,不想再执行循环,使用break

(2)continue:结束本次循环,循环中想要屏蔽某几次循环,使用continue

(3)return:结束程序

二、数组

1.数组是一组相同类型有限个数据的集合(类型相同,元素必须有限)

2.分类:一维整形数组 int a[5];

             二维整形数组  int a[2][3];

             一维字符型数组 char str[32];

             二维字符型数组 char str[5][32];

             多维数组 int a[2][3][4]..[9];

3.一维整型数组

(1)形式:

        数据类型 数组名[元素个数];

         int a[5];

         int a[2+3];

注:元素个数必须为常量、常量表达式,不能为变量或者变量表达

(2)数组元素的访问:

         数组名[元素下标]
         元素下标: 0 - 元素个数-1

注:数组不能对整体操作,只能对单个元素操作
元素下标可以是常量、变量或者表达式,必须为整形
数组元素不能越界访问,元素下标必须保证在 0 - 元素个数-1的范围

(3)初始化

①全部初始化:int a[5] = {1, 3, 5, 7, 9};

②局部初始化:int a[5] = {1, 2, 3};    int a[5] = {0};

③默认初始化:int a[] = {1, 2, 3, 4, 5}; (通过给定初值的个数决定元素个数)

4.数组的存储:

(1)连续性:数组存储空间连续,数组所占空间大小 = 每个元素所占空间大小 * 元素个数

(2)有序性:数组中存放数据的顺序是有序的

5.数组从终端接收值

int a[5] = {0};

for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)

{

scanf("%d", &a[i]);

}

6. 数组创建操作

e.g.从终端输入五个数,输出他们的最大值

首先初始化一组数组以及两个变量,进入第一个循环,从终端依次接收五个数,第一个循环结束;设max为第一个数,进入第二个循环,分别与其他四个数比较,符合条件则赋值给max,最终输出max则为最大值。

若将max变为最大值的角标,则需修改以上程序,在接收五个数后,设max=0,即第一个数的角标,如果第二个数大于a[max],则此时这个数的角标替换max,直至循环结束输出。最小值同理。

7. 数组元素倒置

e.g. 首先接收五个数,多设置一个变量,将a[i]赋值给这个变量,然后把a[len-1-i]赋值给a[i],再把tmp赋值给a[len-1-i],以此循环,再将循环完成的数字依次输出,得到数组元素的倒置。

i

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值