目录
1.函数设计解释
1.什么是函数
比如:某XXX(); XXX就是函数的名字;在第一讲中 printf() 就是一个函数 大家常说的造轮子就是实现某种工具(功能) ,比如说 一段代码块 需要反复实现,为了避免反复写大量的代码 就要写一个轮子(工具) ,这个轮子就是所谓的函数。因为在函数中程序是优先执行main函数代码段,一是为了思路清晰,二是若要需要反复执行某一段 ,大大减少了代码量
2.函数的分类
库函数:就是说所谓的 printf()输出函数 scanf()输入函数。为了提高程序的效率,在C语言的基础库中提供了一系列类似的库函数让程序变的简洁,方便程序员进行软件开发
自定义函数:为了实现某个功能,另一种情况就是避免了大量重复代码的出现,在main函数中看起来没有过多冗长的代码,使得思路清晰。
2.函数设计例子输出
1.无返回值-函数设计
什么又叫做无返回值呢,没有什么变量要获取的,不会去调整些什么。一般我会用在 使用在程序说明。
//函数设计例子输出
//无返回值-函数设计
void begin(void)
{
//函数设计-数九
printf("Function Design - Number Nine\n");
return;
}
一个 void 意思为空就是没有值(变量)要返回
begin 就是函数的名字,括号内的是形参,第三小节讲,因为是void 所以表示空的
代码块的内容就是自己所想实现的
最后的 return; 就只是一个return; 后面不写任何值
2.带有返回值-函数设计
就是写完某个函数之后 要获取值
//带有返回值-函数设计
int text(void)
{
return 321;
}
但是这样写就没有了实际的意义, 这个text()函数 只是返回了 int类型值为321的,实际上来说还没有定义变量;
3.形参 实参例子
所以说 形参 和 在main函数使用自定义函数的实参, 把值传到了函数中,肯定要返回某个值的,不然就没有了实际意义
//形参 实参例子 输入两个数获取最大值
int max(int x, int y)
{
//在if只有一条语句的时候 可以不用写{ }
//因为中间隔了一行 若是不成立 返回值为x
if (x < y)
return y;
return x;
}
在名为max的函数 括号里要求了 要传入两个类型为整数的值 经过比较返回值
在main()函数的实现
//输入两个数获取最大值
//所以要定义两个值
int i, y;
scanf("%d %d", &i, &y); //字符串中间 输入两个数字中间以空格隔开
//定义 名叫max_num 最大的数 的变量
//并使用max函数
int max_num = 0;
max_num = max(i, y); //这个括号里就是实参 传到了max函数里,并运行
//结果返回给了 max_num
//输出结果
printf("max_num = %d", max_num);
3.代码实现过程
1.程序流程
程序说明 -> 取值 -> 设计函数并返回值 -> 输出结果
2.程序思路
程序说明:用以上讲过的 无返回值的函数设计
取值:定义一个变量 传到自定义函数里
设计函数并返回值://代码实现
输出结果:打印输出
3.程序内容
/**
* program:函数设计 例子-(在一定范围内 数九) 比如19090, 有2个九
*
* 函数设计例子输出
* 1)程序说明 2)带有返回值 3)形参 实参例子
* 主题程序实现
*/
#include <stdio.h>
//无返回值-函数设计 程序说明
void begin(void)
{
//函数设计-数九
printf("Function Design - Number Nine\n");
return;
}
//形参 实参例子 输入两个数获取最大值
int max(int x, int y)
{
//在if只有一条语句的时候 可以不用写{ }
//因为中间隔了一行 若是不成立 返回值为x
if (x < y)
return y;
return x;
}
//带有返回值-函数设计
int text(void)
{
return 321;
}
// 返回值为int 函数名 (形参)
//如果形参和实参变量名一样 也没有关系
int cou_ght(int a)
{
//按逻辑说 a 就等于num 因为是通过在main函数中 cou_ght()里传入的
//遇到九做 加一
int text = 0;
//do..while 和 while的区别就是
//do..while 是先做了一次循环再判断是否在循环
do
{
//判断 a % 10(获得个位数) 是否要等于9
if (a % 10 == 9)
{
text++; //默认 +1;
}
//假设 131 / 10 = 13;
//就是说百位变个位 一开始的个位数已经判断过了
a /= 10; //a = a / 10;
} while (a != 0); //a 因为一直做除法 到最后不等0 结束
return text; //最后把test累加的值 返回到main函数中
}
int main(void)
{
//程序函数说明
//选择注释
begin();
//输入两个数获取最大值
//所以要定义两个值
int i, y;
//选择注释
//scanf("%d %d", &i, &y); //字符串中间 输入两个数字中间以空格隔开
//定义 名叫max_num 最大的数 的变量
//并使用max函数
int max_num = 0;
max_num = max(i, y); //这个括号里就是实参 传到了max函数里,并运行
//结果返回给了 max_num
//输出结果
//选择注释
//printf("max_num = %d", max_num);
//程序正式开始 用*把以上例子隔开
for (int i = 0; i < 50; i++)
{
printf("**");
}
//程序说明
begin();
printf("input:"); //提示输入 没有\n,同行显示
//取值
int num;
scanf("%d", &num);
//设计函数并返回值
// 想一个名字 填写实参
//count night
//在函数中 是有返回值的所以我们要再定义变量并把
// cou_ght函数的值赋值给这个变量里
int count = 0;
count = cou_ght(num);
//打印输出
//在 num中 有 count 个 9
printf("There are %d 9 in %d\n", count, num);
getchar();
getchar();
return 0;
}
4.结尾
重点!重点!重点!重点!重点!
重点看代码块中的注释 和思路 //复制后可以直接运行
下一讲 C语言随机4位数 猜数游戏 (循环 判断)
有问题可以直接私信 ,You should elevate yourself. Of course, and me.