函数,由哪些组成:返回值 函数名 参数列表 代码体
函数的一般形式表现:
返回值 函数名(参数列表)
{
代码体
}
函数名规则:
1.数字,字母,下划线
2.不能由数字开头 如:int 2;
3.首字母大写
将值通过return返回出来和函数内printf的区别
return 返回的信息可以*操控 如果你还打印,可以在外面在打印
返回值的作用:从函数内返回一个值(且只能返回一个值,如果想返回多个值,可以用输出参数)
返回的值和返回值类型一定匹配
可以不以不返回任何值? 返回值类型改成void(无类型)
参数列表 替代了 scanf_s这个函数
函数声明:返回值 函数名 参数列表
总结:1.函数中尽量不要使用printf 而是通过返回值返回
2.函数中尽量不要使用scanf_s 而是通过参数列表获取
3.函数名+(参数) 可以直接调用
4.函数2调用函数1 如果函数2函数1前面会发生错误。
处理方法:1.函数2写在函数1的下面 2.将函数1声明写到前面,让编译器知道有函数1的存在
实例:
#include<stdio.h>
double Money_bonus(double m, int n, double r)
{
double p = m * (1 + n * r);
return p;
}
double Money_bonus5(double m, double r)
{
double p = Money_bonus(m, 5, r);
return p;
}
double Money_bonus2_3(double m, double r2, double r3)
{
double tmp = Money_bonus(m, 2, r2);
return Money_bonus(tmp, 3, r3);
}
double Money_bonus3_2(double m, double r2, double r3)
{
double tmp = Money_bonus(m, 3, r3);
return Money_bonus(tmp, 2, r2);
}
double Money_bonus1_1_5(double m, double r1)
{
double tmp = m;
for (int i = 1; i <= 5; i++)
{
tmp = Money_bonus(tmp, 1, r1);
}
return tmp;
}
double Money_bonus1_5(double m, double r0)
{
double tmp = m;
for (int i = 1; i <= 20; i++)
{
tmp = tmp * (1 + r0/4);
}
return tmp;
}
int main()
{
printf("%f\n", Money_bonus5(1000, 0.0585));
printf("%f\n", Money_bonus2_3(1000, 0.0468,0.054));
printf("%f\n", Money_bonus3_2(1000, 0.0468, 0.054));
printf("%f\n", Money_bonus1_1_5(1000, 0.0414));
printf("%f\n", Money_bonus5(1000, 0.0072));
return 0;
}