news 2026/4/16 16:09:38

函数指针实战:冒泡排序与四则运算

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
函数指针实战:冒泡排序与四则运算

函数指针的练习

函数指针实现冒泡排序的升序和降序

#include <stdio.h> #include <stdlib.h> #include <time.h> //正常升序 int shengxu(int* a,int len) { int i=0; int j=0; for(j=len-1;j>0;j--) { for(i=0;i<j;i++) { if(a[i]>a[i+1]) { int t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } } return 0; } //函数指针的实现 int asc(int a,int b) { return a>b; } int desc(int a,int b) { return a<b; } int maopao(int*a,int len,int(*fun)(int,int)) { int i=0; int j=0; for(j=len-1;j>0;j--) { for(i=0;i<j;i++) { if(fun(a[i],a[i+1])) { int t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } } return 0; } int main() { srand(time(NULL)); int a[10]={0}; int i=0; for(i=0;i<10;i++) { a[i]=rand()%100; printf("%d ",a[i]); } printf("\n"); // shengxu(a,10); maopao(a,10,desc); for(i=0;i<10;i++) { printf("%d ",a[i]); } printf("\n"); return 0; }

用函数指针完成一个函数的加减乘除四则运算

#include <stdio.h> double add(double a,double b) //int (*) (int,int),要变成小数类型,double(*)(double,double) { return a+b; } double sub(double a,double b) { return a-b; } double mul(double a,double b) { return a*b; } double div(double a,double b) { return a/b; } int main() { double a=10; double b=20; double(*p)(double,double)=NULL; //函数指针 int choice=0; printf(" 1 + \n 2 - \n 3 * \n 4 / \n"); scanf("%d",&choice); switch(choice) { case 1: p=add; break; //如果不写这句话,程序会一直进行下去 case 2: p=sub; break; case 3: p=mul; break; case 4: p=div; break; } double ret=p(a,b); //add(a,b);sub(a,b);mul(a,b);div(a,b); printf("p(a,b):%lf\n",ret); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:12:55

Java常见面试题及答案汇总(2026持续更新)

Java 作为企业级开发的主流语言&#xff0c;面试时涉及的知识点广泛且深入。本文整理了 Java 基础、集合、多线程、JVM、Spring、数据库、分布式 等高频面试题&#xff0c;并附上详细解析&#xff0c;帮助大家高效备战面试&#xff01; &#x1f4da; 一、Java 基础 1. Java 的…

作者头像 李华
网站建设 2026/4/16 1:00:37

Redis 磁盘 I/O 阻塞导致连接超时问题复盘

摘要&#xff1a;本文详细复盘了一次生产环境中Redis连接超时的故障处理过程。通过系统性的问题定位、根因分析和解决方案实施&#xff0c;最终确定问题源于AOF持久化与RDB快照并发执行导致的磁盘I/O阻塞。文章提供了完整的排查思路、技术分析和优化策略&#xff0c;为类似问题…

作者头像 李华
网站建设 2026/4/16 9:22:47

LatchUtils:简化Java异步任务同步的利器

在Java应用开发中&#xff0c;为了提升系统性能和响应速度&#xff0c;我们经常需要将一些耗时操作&#xff08;如调用外部API、查询数据库、复杂计算等&#xff09;进行异步并行处理。当主流程需要等待所有这些并行任务执行完毕后再继续时&#xff0c;我们通常会用到 Executor…

作者头像 李华