天天看点

c语言srand作用域,实战C语言

for循环

▪for(循环控制变量;运行条件;控制变量的变化)

▪for循环中间条件是必须要的,其他部分可以省略,分号不能省略

▪循环控制变量 的定义和初始化只执行一次

#include

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()导入头文件 直接退出程序

#include

#include

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;

}

运行结果

c语言srand作用域,实战C语言
c语言srand作用域,实战C语言

数组 :存储多个同种类型数据

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

#include

#include

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

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

#include

#include

#include

int main(){

int count=3;//记录每次生成多少个随机数

while(1) {

unsigned int seed=time(NULL);

srand(seed);

for(int i=0;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

scanf("%d",&temp);

//获取对应的生成的随机数

int old=rand()%9+1;

if(temp!=old){

printf("错误 退出!");

exit(EXIT_SUCCESS) ;

}

}

count++;

}

return 0;

}