C语言函数以及函数的使用
16lz
2021-01-23
如何自定义一个函数进行加法运算,代码如下:
int add(int x, int y){ int z = 0; z = x + y; return z;}int main(){ int a = 10; int b = 20; int sum = 0; sum = add(a, b); printf("sum = %d\n", sum); return 0;}
strcpy的使用,代码如下:
int main(){ char arr1[] = "bit"; char arr2[10] = "##########"; strcpy(arr2, arr1); //string copy - 字符拷贝 //strlen - string length - 字符串长度有关 printf("%s\n", arr2); return 0;}
memset 的使用,代码如下:
int main(){ char arr[] = "hello world"; memset(arr, '*', 5); printf("%s\n", arr); //***** world return 0;}
自定义一个函数比较两个数的大小,代码如下:
int get_max(int x, int y){ if (x < y) return y; else { return x; }}int main(){ int a = 10; int b = 20; int max = get_max(a, b); printf("max = %d\n", max); max = get_max(100,500); printf("max = %d\n", max); return 0;}
使用函数交换两个整数,代码如下:
//这样是不能转换的//void swap1(int x, int y)//{// int tmp = 0;// x = tmp;// x = y;// y = tmp;//}使用函数交换两个整数void swap2(int* qa, int* qb){ int tmp = 0; tmp = *qa; *qa = *qb; *qb = tmp;}int main(){ int a = 10; int b = 20; printf("a = %d,b = %d\n", a, b); //swap1(a, b);//传值调用//调用swap2函数 swap2(&a, &b);//传址调用 printf("a = %d,b = %d\n", a, b); return 0;}
这里要明白传址调用和传值调用的区别,适用范围
使用函数打印100到200之间的素数,代码如下:
//是素数返回1,不是返回0int prime(int a){ //2—>a-1 int b = 0; for ( b = 2; b <= sqrt(a); b++) { if (a%b == 0) return 0; } return 1;}int main(){ //打印100到200之间的素数 int i = 0; for ( i = 100; i <= 200; i++) { //判断i是否为素数 if (prime(i) == 1) printf("%d\n", i); } return 0;}
写一个函数打印1000到2000年的闰年,代码如下:
int is_leap_year(int a){ if ((a % 4 == 0 && a % 100 != 0)||(a%400 == 0)) { return 1; } return 0;}int main(){ //写一个函数打印1000到2000年的闰年 int year = 0; for ( year = 1000; year <= 2000 ; year++) { if (is_leap_year(year) == 1) printf("%d\n", year); } return 0;}
其实跟之前使用殉循环大同小异,多了个调用。
函数实现二分查找,代码如下:
// 本质上arr是一个指针int binary_search(int arr[], int k,int sz){ //算法的实现 int left = 0; int right = sz - 1; while (left <= right) { int mid = (left + right) / 2;//中间元素的下标 if (arr[mid]<k) { left = mid + 1; } else if (arr[mid]>k) { right = mid - 1; } else { return mid; } } return -1;}int main(){ //二分查找 //在一个有序数组中查找具体的某个数 //如果找到了返回这个数的下标,找不到返回-1 // int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int k = 7; int sz = sizeof(arr) / sizeof(arr[0]);//求数组的元素个数 int ret = binary_search(arr, k,sz); if (ret == -1) { printf("找不到指定的数字\n"); } else { printf("找到了,下标是:%d\n", ret); } return 0;}
写一个函数,每次调用这个函数,就会将num值+1
void add(int* p){ (*p)++;}int main(){ int num = 0; add(&num); printf("num = %d\n", num);//1 add(&num); printf("num = %d\n", num);//2 add(&num); printf("num = %d\n", num);//3 return 0;}
函数的链式访问
int main(){ printf("%d", printf("%d", printf("%d", 43)));//4321 return 0;}
函数的声明,调用,定义
//函数的声明int add(int x, int y);int main(){ int a = 10; int b = 20; int sum = 0; //函数的调用 sum = add(a, b); printf("%d\n", sum); return 0;}//函数的定义int add(int x, int y){ int z = x + y; return z;}
以上就是今天的学习内容啦,希望能坚持每天敲代码,写博客。
2021.1.22
好知识,才能预见未来
赞赏
0人进行了赞赏支持
更多相关文章
- .NET应用函数定义与用法汇总
- SignalR实现实时Web聊天的实例代码
- 异常设计函数定义与用法汇总
- 用微信PC端dll库实现截图的实例代码
- C#给图片增加文字实例代码
- C# 利用委托进行异步处理实例代码
- 比如说我们要从用户表customer和用户订单表orders中,查询上海的用
- 分享一些高效的LINQ语句代码
- httpHelper 从URL获取值的实例代码