ravel的C语言学习笔记1
1.函数的使用
在C程序开发过程中函数的使用能够极大减少程序员工作量,将一个常用功能模块封装成一个函数可以在任何需要的时刻调用。本文主要记录我自己在学习函数的时候遇到的一些小问题,以便自己日后复习,寻找错误使用。
问题1:函数的声明
函数要在main函数外声明,如int f(x1,x2);然后再在主函数中对f()中的实参(形参)进行定义;主函数的定义完成之后再进行函数f(x1,x2)的定义。
问题2:函数调用
完成了f(x1,x2)的定义之后就需要在主函数中对函数f(x1,x2)进行调用,C语言不能进行嵌套定义,但是可以进行嵌套调用和递归调用。
问题3:递归调用
递归调用是函数调用中一个非常有效地调用方式,下面用递归的方式来求n!。(注:if判定语句后不要加分号(;)否走会一直在if里循环)。以下是一个错误示范:
#include<stdio.h>
int f(int data1);
int main(int argc, char** argv) {
int data1, data2;
printf("请输入正整数N的值\n");
scanf("%d\n", &data1);
data2 = f(data1);
printf("n!=%d",data2);
}
int f(data1) {
int data3;
if (data1 == 0 || data1 == 1)
data3 = 1;
else
data3 = data1 * f(data1 - 1);
return(data3);
}
此代码错误在于在scanf函数中输入%d是多输了\n,导致程序运行不能直接出结果,结果找半天才发现问题所在!
正确代码如下:
#include<stdio.h>
int main(int argc, char** argv) {
int f(int data1);
int data1, data2