C基础系列教程6——函数

该系列文章内容可能来源我本人或者zhrmoe(他的主页:http://zhrmoe.iflab.org/)的编写。文章如果有错误欢迎批评指正,谢谢!转载请注明来自本站,另外,本系列教程中的代码建议初学者自己手打一遍,不要直接复制(由于某些奇怪的原因可能会导致你复制的代码出现错误!相信自己的双手吧=-=
如果你觉得进度太快,可以等你熟悉了前面的内容后再继续往下看


//上一篇文章中有一个打印指定数量的素数的题

//其中一种实现方法是这样的

/*

#include <stdio.h>



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

    int n, i, j, flag;

    printf("Please input the extreme number you want to check: ");

    scanf("%d", &n);

    for (i = 2; i <= n; ++i) {

        flag = 1;

        for (j = 2; j <= i / 2; ++j) {

            if (i % j == 0) {

                flag = 0;

                break;

            }

        }

        if (flag == 1) {

            printf("%d is a prime number.\n", i);

        } else {

            printf("%d is not a prime number.\n", i);

        }

    }

    return 0;

}

*/


/*

你会发现for里面的内容越来越多

并且如果你尝试做了后几道题

会发现你的代码中会重复出现判断素数的代码

为了偷懒,接下来介绍函数

这里的函数类似数学上的函数,但是又有一些不一样

基本语法如下



声明语法:

返回值 函数名(参数列表);



定义语法:

返回值 函数名(参数列表) {

    函数体

}

参数列表可以有多个参数,用逗号隔开

格式是:

参数类型 参数



函数的使用方法是  函数名(参数1);

在使用之前必需在main函数前面声明

以素数判断为例

*/




#include <stdio.h>

//声明一个名叫Prime的函数

//要求一个整数型参数

//叫做number,返回值是int类型

//预想,如果是素数返回1,否则返回0

int isPrime(int number);

//主程序

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

    
int n, i;

    printf(
"Please input the extreme number you want to check: ");

    scanf(
"%d", &n);

    
for (i = 2; i <= n; ++i) {

        
//拿返回值和1对比,如果是1代表i是素数

        //if (isPrime(i) == 1) { //这是最好理解的写法

        //但是通常来说都会写成下面这样,请自行体会

        if (isPrime(i)) {

            printf(
"%d is a prime number.\n", i);

        } 
else {

            printf(
"%d is not a prime number.\n", i);

        }

    }

    system(
"pause");

    
return 0;

}



//函数的定义

int isPrime(int number) {

//这里的number代表着其他函数传入的那个整数

//教材通常称之为形参,但是很多人分不清形参实参什么的

//你可以理解为是传入的那个变量的一个分身

//内容相同但是叫不同的名字,参数传递的细节会在后面教程说明

    int i;

    
int ret = 1;

    
for (i = 2; i <= number / 2; ++i) {

        
if (number % i == 0) {

            ret = 
0;

            
break;

        }

    }

    
//在写函数时候最好写成单一出口的结构

    //即只在函数结束有一个return

    //具体返回的值由一个变量代表

    //如果你的函数没有返回值,类型要写成void

    return ret;

}



/*

到这里你应该明白为什么main的样子是这样了吧?

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

    return 0;

}



main函数作为C语言的入口函数,由系统调用

通常不写后面的参数,因为你运行程序时候没有给程序传参数

但是却一定要有一个int的返回值

是要告诉操作系统这个函数的执行状态,返回0代表正常结束

*/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

88 − 85 =