目录
循环
循环就是重复的执行一段代码
while 循环:
int i = 1;
while (i <= 5)
{
printf("%d ", i);
i++;
}
for 循环:
for (int i = 1; i<10; i++)
{
code;
}
int i;
for (i = 1; i <= 5; i++)
{
printf("%d ", i);
}
do while 循环:
int i = 1;
do
{
printf("%d ", i);
i++;
}while(i <= 5);
中断循环:
break
int i = 1;
while (i <= 5)
{
if (i==3) //i==3 时中断跳出循环
break;
printf("%d ", i);
i++;
}
continue:
结束本次循环,跳到循环头,进行下一轮循环
int i;
for (i = 1; i <= 5; i++)
{
if (i == 2 || i == 5)
continue;
printf("%d ", i);
}
用for循环 求出 1+2+3+4+5+6+....+666的和
数组
数组:用来装一组数的类型。声明形式如下:
定义数组类型变量:
下标:即各元素的编号,编号从 0 开始
二维数组
上面学习的叫一维数组,此时就是二维数组,对比定义如下:
int a[5];
//一维数组
int c[3][4]; //二维数组
一维数组:元素是数据类型的的数组
二维数组:元素是一维数组的数组,本质还是一维数组
c 是 3 个元素的一维数组,每个元素是 含有4个 元素的一维数组。
二维数组一般理解为行列,对初学者比较友好,int a[行][列],即 3 行 4 列,可抽象如下
二维数组初始化:
二维数组元素遍历:
int i, j, a[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };
for (i = 0; i < 3; i++)
for (j = 0; j < 4; j++)
{
printf("%d ", a[i][j]);
}
}
字符数组:
用来存放字符数据的数组是字符数组。
定义格式: char 数组名[常量];
例如:char ctr[6];
常见赋值方式
(1)char str[6]={"CHINA"};
(2)char str[6]="CHINA"; //省略{}
(3)char str[ ]="CHINA"; // 省略长度值
(4)char c[12]={"HOW ARE YOU"};
//c数组具有6个元素,可以存放长度小于或等于5的字符串。
为什么不能存放6个元素?
例如:char c[6]="hello"; 在字符数组中是这样的
c[0] | c[1] | c[2] | c[3] | c[4] | c[5] |
h | e | l | l | o | \0 |
系统会自动在最后一位加上‘\0’,(字符串结束符)
如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即'\0')
字符数组的输入输出
单个字符输入输出(用格式符%c或字符输入函数)
#include<stdio.h>
int main()
{
char c[5];
int i;
for(i=0;i<5;i++)
scanf("%c",&c[i]);
for(i=0;i<5;i++)
printf("%c",c[i]);
printf("\n");
return 0;
}
//输入 :a bc
//打印 : a bc
字符串整体或部分输入输出(用格式符%s)
#include<stdio.h>
int main()
{
char str[5];
scanf("%s",str);
printf("%s",str);
}
//输入 :a bc
//打印 : a
原因:使用%s时,遇到空格,\n,\t都会直接在字符串末尾加结束符'\0',而输出时会遇到'\0'就结束
注意:使用%s时
- 只能输入不包括空格、\t和\n的字符串
- 若要输入空格,用gets函数
- 自动加'\0'
字符串输入函数gets
格式:gets(字符数组)
功能:从键盘输入一个以回车结束的字符串放入字符数组中,并自动加'\0'
#include<stdio.h>
#include<string.h>
int main()
{
char a1[10],a2[10];
gets(a1);
scanf("%s",a2);
printf("a1=%s\n",a1);
printf("a2=%s\n",a2);
}
字符串输出函数 puts
格式: puts(字符数组)
功能:向显示器输出一个字符串(输出完,换行)
说明:字符数组必须以'\0'结束。可以包含转义字符。输出时'\0'转换成'\n',即输出字符后换行。
#include<stdio.h>
#include<string.h>
int main()
{
char a[]={"china\ngood"};
char b[]={"zhong\0guo"};
puts(a);
puts(b);
puts("CHINA");
}