本节内容
1.全局变量与局部变量
2.switch语句
3.for循环
4.continue和break的区别
5.getchar()
6.最强大脑猜数游戏(无数组版)
7.数组
8.最强大脑计数游戏(数组版)
9.坦克飞机大战--------迁移运用
1.全局变量与局部变量
全局变量:在所有函数外声明的变量。
作用范围:在每个函数内都有效。
局部变量:在一个函数内部或复合语句内部定义的变量。
作用范围:只在定义的函数内部或复合语句内部内有效。
2.switch()语句
语法:
switch(常量表达式){ //这里的常量表达式包括int,char,_Bool,枚举类型
case 常量表达式1:执行语句块1;break;
case 常量表达式2:执行语句块2;break;
case 常量表达式3:执行语句块3;break;
……
default:执行语句;//当常量表达式都不满足时执行default里的语句。
3.for循环
语法:
for(初始化变量;条件控制语句;计数器){
循环体
}
初始化变量,条件控制语句,计数器都是表达式,可以为空。条件控制语句用于判断循环体是否执行,计数器用于控制循环体执行次数。
4.continue和break的区别
continue 跳过当前循环,执行下一循环。只用于while,for循环中。当使用continue后,continue后面的语句都不会再执行,直接进入下一次循环。
break 跳出当前循环,执行下一语句。使用break后,直接跳出当前循环,执行循环体外的内容。
5.getchar()
getchar()从缓冲区读取一个字符。可以声明一个字符变量将读取的字符赋值给字符变量。
6.最强大脑猜数游戏(无数组版)
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h> //嵌入需要用到的头文件
int main(){
int num;//声明一个变量用于控制每次出现数的个数
for (num = 4;; num++){
int see; //声明一个变量,用于记录你看到的数
int put; //声明一个变量,用于记录你输入的数
int count=0;//声明一个变量用于记录对比后正确的个数
unsigned int seed = time(NULL);
srand(seed);//设置一个种子,模拟随机数
for(int i = 1;i <= num;i++){
see = rand()%9 + 1;
printf("%d ",see);
}//输出随机数
Sleep(2000);
system("cls");//让随机数显示两秒钟后消失
srand(seed);//使用相同种子,产生相同随机数
printf("请输入你看到的数字:");
for (int i = 1;i <= num;i++){
see = rand()%9 + 1;
scanf("%d",&put);
if (put == see){
count++;
}//将随机数与输入的数相比较,count记录正确的个数
}
if (count == num){
printf("挑战成功!\n进入下一轮:");
}else{
printf("挑战失败!");//就挑战成功,增加一个随机数
}
}
return 0;
}
7.数组
作用:用于记录一组有相同类型的数据
定义:int array1[4]={1,2,3,4};int array2[4] = {1,2};像这样就声明了两个数组,一个是array1[],一个是array2[],定义数组时必须在前面声明的标志,比如int,char。
数组的访问:数组名加上下标,及对中括号内的数字进行更改就可以访问数组中对应的元素。访问时下标从0算起。
int a[]={1,2,3,7,8,9};//定义了一个由五个元素组成的数组
printf("%d\n",a[1]);//访问了二号元素
输出结果为:
2
8.最强大脑计数游戏(数组版)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int main()
{
for(int num=4;;num++){
int count[num];
srand(time(NULL));
for (int i = 0; i < num; i++){
count[i] = rand() % 10;
printf("%d ", count[i]);
}//用for循环将生成的随机数写入数组
Sleep(2000);
system("cls");//间隔两秒后清屏
int see[num];
printf("请输入你看到的值:");
for(int i=0;i < num;i++){
scanf("%d",&see[i]);
}//用for循环将输入的值写入数组
for(int i = 0;i<num;i++){
if (count[i] == see[i]){
printf("第%d位正确!",i+1);
}//用for循环将系统显示的数组和你输入的数组一一对比
else{
printf("挑战失败!");//全对则继续游戏,错误则程序终止
return 0;
}
}
printf("第%d轮\n",num-2);
}
return 0;
}
9.坦克飞机大战--------迁移运用
#include <stdio.h>
#include <windows.h>
#include <time.h>
#include <stdlib.h>//嵌入需要用到的头文件
int main(){
int count =6;//声明一个count控制飞机飞行次数
while(count--){//while循环控制飞机来回飞
//for循环控制飞机正向飞行
for(int i = 0;i<60;i++){
printf("*******************************************************************************\n");
for(int j = 0;j<=i+2;j++){
printf(" ");//for循环控制打印空格个数,从而控制飞机位置
}
printf(" ***\n");
for(int j = 0;j<=i+2;j++){
printf(" ");
}
printf(" ***\n");
for(int j = 0;j<=i+2;j++){
printf(" ");
}
printf("*********\n");
for(int j = 0;j<=i+2;j++){
printf(" ");
}
printf("*********\n");
for(int j = 0;j<=i+2;j++){
printf(" ");
}
printf(" ***\n");
for(int j = 0;j<=i+2;j++){
printf(" ");
}
printf(" *\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
//打印飞机机体并用for循环控制飞机位置
printf("\n\
||\n\
(}##||##{)\n\
(}#0||0#{)\n\
(}#0000#{)\n\
(}######{)\n");//打印坦克机体
printf("*******************************************************************************\n");
Sleep(50);
system("cls");//0.05秒清屏,造成视错觉
}
//for循环控制飞机逆向飞行
for(int i = 60;i>0;i--){
printf("******************************************************************************\n");
for(int j = 0;i-j;j++){
printf(" ");
}
printf(" ***\n");
for(int j = 0;i-j;j++){
printf(" ");
}
printf(" *** \n");
for(int j = 0;i-j;j++){
printf(" ");
}
printf("*********\n");
for(int j = 0;i-j;j++){
printf(" ");
}
printf("*********\n");
for(int j = 0;i-j;j++){
printf(" ");
}
printf(" ***\n");
for(int j = 0;i-j;j++){
printf(" ");
}
printf(" *\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("\n\
||\n\
(}##||##{)\n\
(}#0||0#{)\n\
(}#0000#{)\n\
(}######{)\n");
printf("******************************************************************************\n");
Sleep(50);
system("cls");
}
}
return 0;
}
这是你看到的效果:
飞机大战.gif