2019-07-30

2019-08-01  本文已影响0人  kkkk小天使

函数

1、为什么要用函数?

(1)代码结构复杂,不利于阅读,不利于移植

(2)函数是代码块,一个代码块解决一个问题,一个功能对应一个函数

         代码块是大括号里面的内容{}

2、怎么用

返回值    函数名称(参数,可以有一个或多个,也可以没有){

}、

void test(void){//没有参数和返回值

if(2>3){//不需要返回值

  return;}//return 返回值,提前终端某个函数

}

(1)先声明,后实现

(2)搭框架,不做具体的事情,具体的由每一个函数实现

3、头文件.h函数的声明,变量的声明(不能赋值)因为没有内存

                .c具体实现,实现函数的功能,操作变量

函数实现取款机:

#import <Foundation/Foundation.h>

#include <stdlib.h>

int main(int argc, const char * argv[]) {

    //保存原始密码

    int password = 123;

    int inputPwd = 0;

    int totalTime = 4;

    int totalMoney = 1000;

    printf("**************\n");

    printf("  欢迎使用\n");

    printf("**************\n");

    //一个模块完成一个功能 耦合性降低

    printf("请输入密码:");

    while (1) {

        scanf("%d", &inputPwd);

        if (inputPwd == password) {

            //密码正确

            break;

        }else{

            totalTime--;

            if (totalTime == 0) {

                printf("此卡已冻结 请联系客服!\n");

                //退出

                exit(EXIT_FAILURE);

            }else{

                printf("密码不正确 请重新输入:");

            }

        }

    }

   //密码正确

    char choice;

    while(1){

        printf("**************\n");

        printf("1.取款\n");

        printf("2.存款\n");

        printf("3.设置密码\n");

        printf("4.退出\n");

        printf("**************\n");

        //判断输入是否合法

        char ch[20] = {};

        while (1) {

            //去掉上一次输入的回车符 \n

            printf("请选择操作:");

            int count = scanf("%s", ch);

            if (count != 1) {

                printf("输入不合法 ");

            } else{

                //获取第一个字符

                choice = ch[0];

                if (choice == '1' || choice == '2' || choice == '3' || choice == '4') {

                    break;

                } else{

                    printf("输入不合法 ");

                }

            }

        }

        //检测到底选择的是什么操作

        char choice2;

        int newPassword1 = 0;

        int newPassword2 = 0;

        switch (choice) {

            case '1':

                //取款

                while(1){

                    int outMoney = 0;

                    printf("请输入取款金额:");

                    scanf("%d", &outMoney);

                    if (outMoney > totalMoney) {

                      //金额不足

                        printf("余额不足是否继续(y/n):");

                        getchar();

                        choice2 = getchar();

                        if (choice2 == 'n') {

                            break;

                        }

                    }else{

                        totalMoney -= outMoney;

                        printf("取款成功 余额为:%d\n", totalMoney);

                        break;

                    }

                }

                break;

            case '2':

                printf("请输入存款金额:");

                int inputMoney = 0;

                scanf("%d", &inputMoney);

                totalMoney += inputMoney;

                printf("存款成功 余额为:%d\n", totalMoney);

                break;

            case '3':

                while (1) {

                    printf("请输入新密码:");

                    scanf("%d", &newPassword1);

                    printf("请确认密码:");

                    scanf("%d", &newPassword2);

                    if (newPassword1 == newPassword2){

                        password = newPassword1;

                        printf("更改密码成功\n");

                        break;

                    }else{

                        printf("两次密码不一致 ");

                    }

                }

                break;

            default:

                printf("感谢你的使用 再见!!!\n");

                exit(EXIT_SUCCESS);

                break;

        }

    }

    return 0;

}

上一篇 下一篇

猜你喜欢

热点阅读