day04
[1] 循环结构
for(int i=0;i<6;i++)
{
for(int j=0;j<3;j++)
{
printf("i:%d j:%d\n",i,j);
}
}
外层循环执行一次,内层循环执行一轮
九九乘法表:
for(int i=1;i<10;i++)
{
for(int j=1;j<=i;j++)
{
printf("%d*%d=%2d ",i,j,i*j);
// printf("%d*%d=%d\t",i,j,i*j); // \t===tab
}
putchar(10);
}
练习:D
终端输入行数,实现以下功能:
输入5
*
**
***
****
*****
行数 每一行*个数 嵌套
1 1
2 2
3 3
终端输入行数,实现以下功能:
输入5
*
**
***
****
*****
***** 0空格
**** 1
*** 2
** 3
* 4
行数 空格 *
1 0 5
2 1 4
3 2 3
4 3 2
5 4 1
for(行数) int i=0;i<5;i++) //0-4
{
for(空格){} int k=0;k<i;k++)
for(*){} int j=5-i;j>0;j--
}
while
int i=1;
while(i<5)
{
printf("%d\n",i);
i++;
}
==========================
1-10数字和
1. 先获取10个数
2. 把10个数累加
int i=1,sum=0;
while(i<=10)
{
sum+=i;
i++;
}
printf("%d\n",sum);
do_while
int i=12;
do
{
printf("%d\n",i);
i++;
} while (i<=10);
while和do_while区别:
while先判断再执行
do_while先执行一次,再判断
死循环:while(1); for(;;); (加分号说明是一个独立的语句,不加分号说明下面还有语句要执行)
练习:A !(x++) !真=假
[2] 循环控制
break:结束循环
continue :结束本次循环,继续下一次循环
return 0:结束程序
[3] 数组
由一个或多个相同类型数据组成的集合
特点:
数据类型相同
内存连续
3.1一维数组
格式:
存储类型 数据类型 数组名[元素个数]
int arr[5];
定义了一个int 类型的数组,可以存储5个int类型的数据
例: 只有在定义时,5表示元素个数,其他任何情况下5表示数组的第6个元素
int a[5]={5,6,7,8,9};
printf("%d %d %d\n",a[0],a[2],a[4]);
访问元素: 索引从0开始
a[0]----->5
a[1]----->6
a[2]----->7
a[3]----->8
a[4]----->9
char b[5]={'h','e','l','l','o'};
3.2数组名
也表示数组的首地址,是地址常量,不能为左值(=左边)
3.3 初始化
3.3.1全部初始化
int a[5]={5,6,7,8,9};
3.3.2部分初始化
int a[5]={8,9};
未初始化部分值为0
3.3.3 未初始化
int a[5];
值为随机值
定义数组元素值都为0:
int a[40]={0};
int a[40]={ };
3.4数组遍历
int a[5]={0};
for(int i=0;i<5;i++)
scanf("%d",&a[i]);
for(int i=0;i<5;i++)
printf("i:%d\n",a[i]);
练习:
打印数组中最大值
3.5 内存分配
地址编号差值取决于数据类型
练习:D