函数的定义
-
函数头:函数对外的公共接口
-
函数名称:命名规则与变量一致,一般取与函数实际功能相符合的、顾名思义的名称。
-
参数列表:即黑箱的输入数据列表,一个函数可有一个或多个参数,也可以不需要参数。
-
返回类型:即黑箱的输入数据类型,一个函数可不返回数据,但最多只能返回一个数据
-
-
函数体:函数功能的内部实现
-
语法说明
-
返回类型 函数名称(参数1,参数2,.......)
{
函数体
return 返回值;
} -
用函数实现两数相加
-
#include <stdio.h> // 实现两个数值相加,并将结果返回 float Add(int a, float b) { return a+b; } int main(int argc, char const *argv[]) { int a = 10; float f = 10.5; float ret = Add(a,f); printf("%.2f\n",ret); return 0; }
加减乘除取余接口函数,并实现将结果返回到主函数,并输出
-
#include <stdio.h> #include <stdbool.h> float add(float a, float b)// 形参,空间内存 { return a+b; // return后函数空间被释放 } float sub(float *a, float *b)// 形参,空间内存 { return *a-*b; // return后函数空间被释放 } float data; // 全局变量,程序不结束空间不释放 float *mul(float *a, float *b)// 形参,空间内存 { data = (*a)*(*b); return &data; // return后函数空间被释放 } bool div(float *a, float *b, float *rdata)// 形参,空间内存 { *rdata = (*a)/(*b); return true; } //sur(int pbuf[]) void sur(int *pbuf,int *ret) { *ret = pbuf[0] % pbuf[1]; } int main(int argc, char const *argv[]) { float a = 15.6; float b = 10.6; int a1 = 3; int b1 = 4; float ret = add(10.5,15.6);// 实参 float ret1 = add(a1,b1);// 实参 printf("%.2f,%.2f\n",ret, ret1); printf("%.2f\n", sub((float *)&a1,(float *)&b1)); float *p = mul(&a,&b); printf("%.2f\n",*p); float rdata = 0; div(&a,&b,&rdata); printf("%.2f\n",rdata); int buf[2] = {a1,b1}; int ret2; sur(buf,&ret2); printf("%d\n",ret2); return 0; }
从键盘输入一个字符串,然后按照下面要求输出一个新字符串。新串是在原串中,每两个字符之间插入一-个空格,如原串为abcd,则新串为ab cd。要求在函数insert中完成新串的产生﹔
#include <stdio.h> #include <string.h> void insert_space(char *newStr,char *str) { int cnt = 0; for(int i = 0; i < strlen(str); i++)//strlen计算字符串长度 { newStr[cnt++] = str[i]; if((i+1) % 2 == 0) // 添加空格 { newStr[cnt++] = ' '; } } } int main(int argc, char const *argv[]) { char str[] = "jackroseken"; char newStr[strlen(str)*2]; // 清空数组 memset(newStr,0,strlen(str)*2); insert_space(newStr,str); printf("%s\n",newStr); return 0; }