1、getchar();从终端接收一个字符,注意:当上一次有输入的情况下,必须要将上一次缓冲区里面的内容清空。
2、fflush(stdin)刷新输入流;
3、一般多种情况用switch;
4、return 退出当前程序;
5、exit 导入头文件,直接退出程序;
6、main函数: 不写实际代码,逻辑
ATM代码
#include<stdio.h>
#include<stdlib.h>
int main(){
int old = 123;//原始密码
int input;//输入密码
int wrongTime = 3; //错误次数
int choice;
int total = 1000;//余额
char goon;
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");
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("存款成功!\n");
printf("可用余额为:%d",total);
break;
case 2://取款
int temp2;
for(;1<2;){
printf("请输入取款余额:");
scanf("%d",&total);
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("密码设置成功!\n");
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("输入无效");
}
break;
}
return 0;
}
随机数的产生
#include<stdio.h>
#include<windows.h>
#include <time.h>
/*
当系统运行起来,系统自动产生一个种子
使用rand产生随机数之后
重新启动程序 再次使用rand发现种子是一样的
总结: 只要种子一样产生的随机数就一样 1 2 3
如果需要每次重新运行都产生不一样的随机数
就需要更爱==更改种子
时间:1000 1001
srand(time()NULL) 导入头文件<stdlib.h><time.h>
*/
int main(){
int i;
srand(time(NULL));
for(int i = 0;i < 10;i++){
int temp = rand() % 9 + 1;
printf("%d",temp);
}
return 0;
}