浅谈C中的函数,以一个小的加减乘除计算器为例

新手如何使用c写一个控制台计算器

优雅的使用函数

很多同学第一次学习C语言的时候,对函数的概念并不清晰,其实,用一种通俗且粗暴的方式来理解的话,你可以将函数想象成一个不可见的管道,一端传入参数,一端返回结果,管道中有着各种操作数据的方法,接下来以一个例子来说明:

代码示例运行结果截图:

代码截图
上图就是一个简单的计算加和的方法截图,其实现包含了一些大家编写时的代码规范与实现思路:
就以加法为例,其中定义了一个add()函数方法用于进行加和操作,该函数方法由头文件引入并被主函数调用,其余方法流程基本一致,其中add只关注你传入的两个参数,它操作后将结果返回给你,其中实现思路如下:

  1. 将主方法与具体函数声明与实现分开处理
    首先创建一个.h后缀的文件,进行函数原型的声明
int add(int i, int j);

int subtract(int i,int j);

int multiply(int i,int j);

int divide(int i,int j);
  1. 将函数实现与声明分开,提高可读性
    其次创建一个.c后缀的文件进行函数的具体实现
#include "mymath.h"

int add(int i, int j) {
    return i + j;
}

int subtract(int i, int j) {
    return i - j;
}

int multiply(int i, int j) {
    return i * j;
}

int divide(int i, int j) {
    if (j == 0) {
        return -1;
    }
    return i / j;
}

  1. 创建主方法进行调用
    最后创建一个main.c文件进行代码调用与其余流程的实现,实现方法很多,大家还需要多多探索
include<stdio.h>
#include "mymath.h"

//函数原型的声明

int main() {

    int flag, i, j;
    //设置标志位使得其中代码循环
    int quit = 0;
    while (quit == 0) {

        printf("************************\n");
        printf("*                      *\n");
        printf("*1.ADD                 *\n");
        printf("*2.SUBTRACT            *\n");
        printf("*3.MULTIPLY            *\n");
        printf("*4.DIVIDE              *\n");
        printf("*5.QUIT                *\n");
        printf("************************\n");
        printf("select a number for function:\n");
        scanf("%d", &flag);

        //进行分支选择操作
        switch (flag) {
            case 1:
                printf("please input two number for add:\n");
                scanf("%d%d", &i, &j);
                printf("the answer is:%d\n", add(i, j));
                break;
            case 2:
                printf("please input two number for subtract:\n");
                scanf("%d%d", &i, &j);
                printf("the answer is:%d\n", subtract(i, j));
                break;
            case 3:
                printf("please input two number for multiply:\n");
                scanf("%d%d", &i, &j);
                printf("the answer is:%d\n", multiply(i, j));
                break;
            case 4:
                printf("please input two number for divide:\n");
                scanf("%d%d", &i, &j);
                //进行判断防止除零异常
                if (j == 0) {
                    printf("error input for divide by zero\n");
                    break;
                }
                printf("the answer is:%d\n", divide(i, j));
                break;
            case 5:
            //修改标志位跳出循环,结束程序
                quit = 1;
                return 0;
            default:
                printf("system error!");
        }
    }

}


Tips:其中值得讲解的有:

在刚开始学习代码时就要养成良好的编程习惯,不要将所有的代码写在一个文件中,这样不利于阅读,且杂乱不容易纠错;还要进行一定的注释,说明代码的含义,利于后续的维护与合作,不注释的代码都是狗粑粑;很多童靴在学习之初都会迷茫,这很正常,不要焦虑与紧张,多写多练养成编程思维;还有就是函数声明的问题,若你就想写在一个文件中,你可能会遇到方法找不到的问题,这大概率是因为你没有进行函数原型的声明,你可以将方法提到main函数之前,或者进行函数原型声明如图1所示的那种方式进行声明,该错误就会解决。

总结

很多的同学在学习一门语言的时候,可能就是抱着书与视频看啊品啊,但最后的结果都是一无所得,甚至将自己越绕越迷糊,这都是因为对知识理解不透彻,不要小看每一个hello world!所有的代码都要去敲一下,不练习不进步,加油!编码少年们!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值