for循环
▪for(循环控制变量;运行条件;控制变量的变化)
▪for循环中间条件是必须要的,其他部分可以省略,分号不能省略
▪循环控制变量 的定义和初始化只执行一次
#include<stdio.h>
int main(){
for(;1<2;)
for(int i+0;i<10;i++)
//输出1-10之间的整数
for(int i=1;i<=10;i++){
printf("i=%d\n",i);
//不断输出1-10之间的数
//int i=1;
for(int i=1;i<=10;){
printf("1=%d\n",i);
if(i==10){
i=0;
}
i++;
}
while循环
while是计算机的一种基本循环模式。当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。
while语句的一般表达式为:while(表达式){循环体}。
while(true):死循环,用break跳出循环
do...while 循环
是 while 循环的变种。该循环程序在初次运行时会首先执行一遍其中的代码,然后当指定的条件为 true 时,它会继续这个循环。所以可以这么说,do...while 循环为执行至少一遍其中的代码,即使条件为 false,因为其中的代码执行后才会进行条件验证。
变量作用域:局部变量 全局变量 静态局部变量
1.在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
2.全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
3.当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
switch语句
int main(){
int a=0;
printf("请输入一个数1-3:");
scanf("%d",&a) ;
switch(a){
case 1:
printf("你输入的是1\n");
break;
case 2:
printf("你输入的是2\n");
break;
default:
printf("你输入的是3\n");
break;
}
return 0;
}
ATM实战(对for循环的运用)
getchar():从终端接收一个字符
注意:当上一次 有输入的情况下 必须要将上一次缓冲区里面的内容清空
scanf("%d");
123\n
方式一:
getchar() ;//拿走\n
getchar();
方式二:
fflush(stdin);//刷新输出流
return;结束当前这个函数
exit()导入头文件 <stdlib.h>直接退出程序
#include<stdio.h>
#include<stdlib.h>
int main(){
int old = 123;//原始密码
int input;//输入密码
int wrongTime = 3; //错误次数
int total=1000;//金额
printf("**********************\n");
printf(" 欢迎使用建设银行系统\n");
printf("**********************\n");
//int i = 1;
printf("请输入密码:");
for(int i = 1;i <= wrongTime; i++){
scanf("%d", &input);
//判断密码
if(input == old){
//密码正确
break;
}
if(i == wrongTime){
printf("错误次数过多!\n");
return 1;
}
//密码不正确
printf("密码不正确,请重新输入密码:");
}
//printf("密码正确!\n");
//主页面
int choice;//接收用户选择
int goon;//是否继续
for(;1;){
printf("********************\n");
printf("1.存款\n") ;
printf("2.取款\n") ;
printf("3.查询\n") ;
printf("4.更改密码\n") ;
printf("5.退出\n") ;
printf("********************\n");
//提示用户选择
printf("请选择操作:") ;
scanf("%d",&choice);
switch(choice){
case 1: //存款
int temp;
printf("请输入存款金额:");
scanf("%d",&temp);
total+=temp;
printf("存款成功!可用余额为:%d\n",total);
break;
case 2://取款
int temp2;
for(;1<2;){
printf("请输入取款金额:");
scanf("%d",&temp2);
if(temp2>total){
printf("余额不足");
}else{
total-=temp2;
printf("取款成功,余额为%d\n",total);
break;
}
}
break;
case 3://查询余额
printf("当前余额为:%d\n",total);
break;
case 4://更改密码
int n1;
int n2;
for(;1<2;){
printf("请输入新密码:") ;
scanf("%d",&n1);
printf("请确认密码:");
scanf("%d",&n2);
if(n1==n2){
printf("密码设置成功!");
old=n1;
break;
}else{
printf("两次输出不一样!");
}
}
break;
default://退出
exit(EXIT_SUCCESS);//exit(EXIT_FAILURE);
break;
}
//提示是否继续
for(;1<2;){
printf("是否继续(y/n):");
getchar();
scanf("%c",&goon);
if(goon=='y'){
break;
}
if(goon=='n'){
exit(EXIT_SUCCESS);
}
printf("输入无效");
}
}
return 0;
}
运行结果
数组 :存储多个同种类型数据
1,数组的定义[]
int array[]={1,2,3,4};
int array[4];
int array[4]={1,2};
为数组分配内存空间的时候必须确定系统
array[0]=(array+0)
array[1]=(array+1)
2,数组内存
数组名就是数组的首地址
3,数组访问 :下标0-n-1
array[0],array[1]
产生不同随机数(对数组的运用)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int array[4]={};
srand(time(NULL));
//产生随机数的同时去比较是否重复,重复就再产生一个,不重复就保存
//每次i的值可以用来判断已经有几个了
for(int i=0;i<4;i++){
int temp=rand()%100;
if(i==0){
array[i]=temp;
}else{
int j=0;
for(;j<i;j++){
if(array[j]==temp){
break;
}
}
if(j=i){
array[i]=temp;
}else{
i--;//重复了,重新回到当前这一次
}
}
}
for(int i=0;i<4;i++){
printf("%d ",array[i]);
}
return 0;
}
产生随机数的小游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
int main(){
int count=3;//记录每次生成多少个随机数
while(1) {
unsigned int seed=time(NULL);
srand(seed);
for(int i=0;i<count;i++){
//生成一个随机数
int temp=rand() %9+1;
printf("%d ",temp);
}
printf("\n");
//2s后刷新屏幕
Sleep(2000) ;
//for(int i=0;i<10000000000/15*2;i++)
srand(seed);
system("cls");
int temp;
printf("请输入:");
//接收用户输入 一个一个接收
//重新设种子 和之前生成的种子一样
for(int i=0;i<count;i++){
scanf("%d",&temp);
//获取对应的生成的随机数
int old=rand()%9+1;
if(temp!=old){
printf("错误 退出!");
exit(EXIT_SUCCESS) ;
}
}
count++;
}
return 0;
}