函数练习220216
目录
1.判断是否为某数的倍数
2.用三元运算符比较大小
3.交换变量大小
4.判断质数:设一个数n是否能整除2—>n-1的数,真为合数,假为质数
5.判断闰年
6.有序数列的二分查找
7.每调用一次函数,num的值加一
1.判断是否为某数的倍数
2.用三元运算符比较大小
max(int x, int y) {int z;z = x > y ? x : y;return z;}
int main()
{int a = 10;int b = 20;int c = max(a, b);printf("%d", c);return 0;
}
3.交换变量大小
失败原因:a,b,x,y是四个地址,函数无返回
解决方法:调用指针
&a,&b是a,b的地址;*pa,*pb指针变量放的是a,b的地址,所以a,b,x,y只两个地址
void swap(int*pa, int*pb) {int z=0;z = *pa;*pa = *pb;*pb = z;}
int main()
{int a = 10;int b = 20;printf("交换前:%d,%d\n", a, b);swap(&a, &b);printf("交换后:%d,%d", a,b);return 0;
}
4.判断质数:设一个数n是否能整除2—>n-1的数,真为合数,假为质数
int prime(int x) {int n = 0;for (n = 2;n < x;n++) {if (x % n == 0) return 0;}return 1;
}int main() {int i = 0;int count = 0;for (i = 100;i <= 200; i++) {prime(i);if (prime(i) == 1) {printf("质数:%d\n", i);count ++;}}printf("共有%d个质数", count);return 0;
}
5.判断闰年
int prime(int x) {if (x % 400 == 0||(x%4==0&(x%100!=0))) return 1;return 0;
}int main() {int i = 0;int count = 0;for (i = 1000;i <= 2000; i++) {prime(i);if (prime(i) == 1) {printf("闰年:%d ", i);count ++;}}printf("共有%d个闰年", count);return 0;
}
6.有序数列的二分查找
int search(int a[], int k, int sz) {int left = 0;int right = sz - 1;while (left <= right){int mid = (left + right) / 2;if (a[mid] > k)right = mid - 1;else if (a[mid] < k)left = mid + 1;elsereturn mid;}return -1;
}
int main() {int arr[] = { 1,2,3,4,5,6,7,8,9,10 };int key = 7;int sz = sizeof(arr) / sizeof(arr[0]);int ret = search(arr, key, sz);if (ret == -1)printf("找不到");elseprintf("找到了,下标是%d", ret);return 0;}
7.每调用一次函数,num的值加一
函数内部想要改变外部的值(把形参的值传给实参)——用指针
指针发送外部变量给函数,函数用*变量接收
add(int *pa) {(*pa)++;
}int main() {int num = 0;for (int i = 1;i < 10;i++) {add(&num);printf("调用了%d次函数\n",num);}return 0;
}
函数练习220216相关推荐
- 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法
数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...
- Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译
Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...
- C++ 笔记(34)— C++ exit 函数
当遇到 main 函数中的 return 语句时,C++ 程序将停止执行.但其他函数结束时,程序并不会停止.程序的控制将返回到函数调用之后的位置.然而,有时候会出现一些非常少见的情况,使得程序有必要在 ...
- C++ 笔记(30)— 友元函数与友元类
我们知道类的私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行.这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦. ...
- 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )
1. foreach 函数 foreach 函数定义如下: $(foreach <var>,<list>,<text>) 函数的功能是:把参数 <list&g ...
- 浅显易懂 Makefile 入门 (06)— 文件名操作函数(dir、notdir、suffix、basename、addsuffix、addperfix、join、wildcard)
编写 Makefile 的时候,很多情况下需要对文件名进行操作.例如获取文件的路径,去除文件的路径,取出文件前缀或后缀等等. 注意:下面的每个函数的参数字符串都会被当作或是一个系列的文件名来看待. 1 ...
- Go 学习笔记(65)— Go 中函数参数是传值还是传引用
Go 语言中,函数参数传递采用是值传递的方式.所谓"值传递",就是将实际参数在内存中的表示逐位拷贝到形式参数中.对于像整型.数组.结构体这类类型,它们的内存表示就是它们自身的数据内 ...
- Go 学习笔记(61)— Go 高阶函数、函数作为一等公民(函数作为输入参数、返回值、变量)的写法
函数在 Go 语言中属于"一等公民(First-Class Citizen)"拥有"一等公民"待遇的语法元素可以如下使用 可以存储在变量中: 可以作为参数传递给 ...
- C++ 笔记(26)— 主函数 main(int argc, char *argv[]) 参数说明
带形参的 main 函数,如 int main( int argc, char* argv[], char **env ) 是 UNIX .Linux 以及 Mac OS 操作系统中 C/C++ 的 ...
最新文章
- 一文看懂中国MEMS传感器产业链
- java商城pom,使用maven创建Java购物商城系统的common工程
- AtCoder Regular Contest 110 E.Shorten ABC——坑
- mysql aes密钥大于16位_aes秘钥限制问题解决办法
- Python可以减少代码量?我不信
- java中二进制怎么说_面试常用:说清楚Java中synchronized和volatile的区别
- Ubuntu下完全删除Edraw软件
- ios app应用开发环境配置方法总结
- 用友 NC客户化开发手册
- IAR工程适配GD32芯片
- php还原时间戳,如何将php时间戳转换回日期
- hadoop+HBase+ZooKeeper+Hive完全分布式集群部署安装
- Flutter TextField 去掉下滑线和底部字符数计数
- POCO中的异常处理和调试
- vscode上利用screen命令跑代码
- 多类差异信息柔性融合概念与内涵
- 计算机如何永久删除文件无法找回,电脑文件永久性删除了怎么办?简单五招教你恢复...
- cms可视化编辑php,AyaCMS与We7CMS可视化编辑模板功能对比
- bin文件分析发现的问题(1)
- keil5图标变成白色_设计师必看的图标设计指南「下」