当前位置: 首页 > news >正文

thinkphp做的网站源码在线制作图片透明背景

thinkphp做的网站源码,在线制作图片透明背景,旭辉网站建设,如何免费弄一个网站✨✨欢迎#x1f44d;#x1f44d;点赞☕️☕️收藏✍✍评论 个人主页#xff1a;秋邱博客 所属栏目#xff1a;C语言 #xff08;感谢您的光临#xff0c;您的光临蓬荜生辉#xff09; 前言 在这之前我们学习了《拿捏指针#xff08;一#xff09;》#xff0c;《拿… ✨✨欢迎点赞☕️☕️收藏✍✍评论 个人主页秋邱博客 所属栏目C语言 感谢您的光临您的光临蓬荜生辉 前言 在这之前我们学习了《拿捏指针一》《拿捏指针二》没看过的可以去看看哟接下里我们将指针最后一篇《拿捏指针三》看完直接捏爆指针。 函数 前面我们已经学过了指针函数接下里学指针数组回调函数。 我们先来看看下面这串代码。 计算器 #define _CRT_SECURE_NO_WARNINGS #includestdio.h int Add(int x ,int y) {return x y; } int Sub(int x, int y) {return x y; } int Mul(int x, int y) {return x * y; } int Div(int x, int y) {return x / y; } int main() {int x, y;int ret 0;int input 0;do{printf(************************\n);printf(***** 1.Add 2.Sub *****\n);printf(***** 3.Mul 4.Div *****\n);printf(******* 0.exit *******\n);printf(************************\n);printf(请选择);scanf(%d, input);switch (input){case 1:printf(输入操作数);scanf(%d %d, x, y);ret Add(x, y);printf(ret %d\n, ret);break;case 2:printf(输入操作数);scanf(%d %d, x, y);ret Sub(x, y);printf(ret %d\n, ret);break;case 3:printf(输入操作数);scanf(%d %d, x, y);ret Mul(x, y);printf(ret %d\n, ret);break;case 4:printf(输⼊操作数);scanf(%d %d, x, y);ret Div(x, y);printf(ret %d\n, ret);case 0:printf(退出程序\n);break;default:printf(输入错误\n);}} while (input); } 虽然我们实现了这个计算器但是它太过于累赘了这是我们就可以用函数指针数组。 函数指针数组 数组是⼀个存放相同类型数据的存储空间我们已经学习了指针数组那要把函数的地址存到⼀个数组中那这个数组就叫函数指针数组。 其实在《拿捏指针(二)》的模拟二维数组里面我们已经用过函数指针数组了。 定义的格式 int (*p[3])(); p先和 [] 结合说明parr1是数组是 int (*)() 类型的函数指针。 我们现在对上面的代码进行更改用函数指针数组的方式。 #define _CRT_SECURE_NO_WARNINGS #includestdio.h int Add(int x ,int y) {return x y; } int Sub(int x, int y) {return x y; } int Mul(int x, int y) {return x * y; } int Div(int x, int y) {return x / y; } int main() {int x, y;int ret 0;int input 0;int(*p[5])(int x, int y) { 0, Add, Sub, Mul, Div };do{printf(************************\n);printf(***** 1.Add 2.Sub *****\n);printf(***** 3.Mul 4.Div *****\n);printf(******* 0.exit *******\n);printf(************************\n);printf(请选择);scanf(%d, input);if ((input 4 input 1)){printf(输⼊操作数 );scanf(%d %d, x, y);ret (*p[input])(x, y);printf(ret %d\n, ret);}else if (input 0){printf(退出计算器\n);}else{printf(输⼊有误\n ); }} while (input);} 回调函数 回调函数是一个函数它作为参数传递给另一个函数在特定事件发生时被调用。这种机制允许我们将代码模块化并在需要的时候进行调用。回调函数常用于事件处理、异步编程、并发编程等场景。 int Add(int x ,int y) {return x y; } int Sub(int x, int y) {return x y; } int Mul(int x, int y) {return x * y; } int Div(int x, int y) {return x / y; } void calc(int(*pf)(int, int))//回调函数 {int ret 0;int x, y;printf(输⼊操作数);scanf(%d %d, x, y);ret pf(x, y);printf(ret %d\n, ret); } int main() {int input 1;do{printf(************************\n);printf(***** 1.Add 2.Sub *****\n);printf(***** 3.Mul 4.Div *****\n);printf(******* 0.exit *******\n);printf(************************\n);switch (input){case 1:calc(Add);//调用函数break;case 2:calc(Sub);//调用函数break;case 3:calc(Mul);//调用函数break;case 4:calc(Div);//调用函数break;case 0:printf(退出程序\n);break;default:printf(选择错误\n);break;}} while (input);} qsort()函数 冒泡排序 什么事冒泡排序呢 冒泡排序是一种简单直观的排序算法。它重复地走访过要排序的数列一次比较两个元素如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢浮到数列的顶端。 动图演示  我们就用c语言来实现它。 void Swap(int* arr, int sz) {for (int i 0; i sz -1; i){for (int j 0; j sz - i -1; j){if (arr[j] arr[j 1]){int tmp arr[j];arr[j] arr[j 1];arr[j 1] tmp;}}} } int main() {int arr[10] { 3,6,8,1,9,4,2,7,10,5 };int sz sizeof(arr) / sizeof(arr[0]);Swap(arr,sz);for (int i 0; i sz; i){printf(%d , arr[i]);}return 0; } 输出结果 1 2 3 4 5 6 7 8 9 10 这就是冒泡排序的C语言的实现方式但是它的局限性太多了比如你要用字符串呢这就很难实现所以我们可以用一个函数就是qsort()。 qsort()函数举例 我们先来看看qsort()的声明 void qsort (void* base, size_t num, size_t size,int (*compar)(const void*,const void*)); base       指向数组中要排序的第一个对象的指针转换为void*。 num       基数指向的数组中元素的个数。Sizet是一个无符号整型。 size        数组中每个元素的字节大小。Size t是一个无符号整型。 compar 指向比较两个元素的函数的指针。这个函数被qsort反复调用以比较两个元素。应遵                循以下原型:Int compare (const void* p1, const void* p2)。 下面我们来对它进行使用 排序整型数据 //整形数据结构 int int_arr(const void* p1, const void* p2) {return (*(int*)p1 - *(int*)p2); } int main() {int arr[10] { 3,6,8,1,9,4,2,7,10,5 };int sz sizeof(arr) / sizeof(arr[0]);qsort(arr,sz,sizeof(arr),int_arr);for (int i 0; i sz; i){printf(%d , arr[i]);}return 0; } 排序结构数据 #define _CRT_SECURE_NO_WARNINGS#includestdio.h #includestring.h//strcmp函数的头文件 #includestdlib.h//qsort函数的头文件 struct people {char name[20];int age; }; //数据结构名字比较 int cmp_name(const void* e1, const void* e2) {return strcmp(((struct people*)e1)-name, ((struct people*)e2)-name); }//打印 void Print(struct people* p1,int sz) {for (int i 0; i sz; i){/*printf(%s %d\n, p1[i].name, p1[i].age);//另一种打印方式*/printf(%s %d\n, (p1 i)-name, (p1 i)-age);}printf(\n); } //数据结构年龄比较 int cmp_age(const void* e1, const void* e2) {return ((struct people*)e1)-age - ((struct people*)e2)-age; } int main() {struct people s[] { {tangsan,20},{lisi,10},{zhaowu,40},{laoliu,5} };int sz sizeof(s) / sizeof(s[0]);qsort(s, sz, sizeof(s[0]), cmp_name);printf(按名字排序\n);Print(s, sz);qsort(s, sz, sizeof(s[0]), cmp_age);printf(按年龄排序\n);Print(s,sz);return 0; } 输出结果 按名字排序 laoliu 5 lisi 10 tangsan 20 zhaowu 40 按年龄排序 laoliu 5 lisi 10 tangsan 20 zhaowu 40   qsort()的模拟 上面我们已经知道了qsort函数的定义和使用现在我们就来模拟一下qsort函数。 //实现qsort函数 void Swap(char* p1, char* p2,size_t width) {int i 0;for (i 0; i width; i){char tmp *p1;*p1 *p2;*p2 tmp;p1;p2;} } int bubbl_sort(void* base, size_t num,size_t width,int cmp (const void*p1 ,const void* p2)) {for (int i 0; i num - 1; i){for (int j 0; j num - 1 - i; j){if (cmp((char*)base j * width, (char*)base (j 1) * width) 0){Swap((char*)base j * width, (char*)base (j 1) * width,width);}}} } int int_cmp(const void* p1, const void* p2) {return *(char*)p1 - *(char*)p2; }int main() {int base[10] {2, 7, 3, 8, 1, 9, 1, 5, 6, 0};int sz sizeof(base) / sizeof(base[0]);bubbl_sort(base,sz,sizeof(base[0]),int_cmp );for (int i 0; i sizeof(base) / sizeof(base[0]); i){printf(%d , base[i]);}printf(\n);return 0; } 我们这里展现int型的排序。  sizeof和strlen的对⽐ sizeof 前面我们也已经讲过了sizeof,现在我们再来简单的回顾一下sizeof是一个操作符用来计算类型的大小单位是字节。 注意sizeof只与类型有关跟内容没什么关系 int main() {int a 10;printf(%d\n, sizeof(a));printf(%d\n, sizeof a);printf(%d\n, sizeof(int));return 0; } 输出结果 4 4 4  strlen strlen 是C语⾔库函数功能是求字符串⻓度。函数原型如下 size_t strlen ( const char * str ); 统计的是从 strlen 函数的参数 str 中这个地址开始向后\0 之前字符串中字符的个数。 strlen 函数会⼀直向后找 \0 字符直到找到为⽌所以可能存在越界查找。 int main() {char arr1[3] { a, b, c };char arr2[] abc;printf(arr1%d\n, strlen(arr1));printf(arr2%d\n, strlen(arr2)); } 输出结果 arr1(随机值直到遇到\0后停下来) arr23 char arr1[3] { a, b, c ,\0}; 这时只需要在后面手动改加上/0就可以了。 结尾  我们指针以及全部将完了感谢各位观众老爷的点赞评论收藏和关注。
http://www.zqtcl.cn/news/580085/

相关文章:

  • 网站建设云南网页游戏大厅都有哪些
  • 网站建设与管理报告书郑州建设银行网站
  • 做网站网页的人是不是思维公司网站建设包括
  • 网站建设都包括哪些网站后台如何上传文件
  • 网站便民服务平台怎么做迁安做网站中的cms开发
  • 做外贸比较好的网站怎么把网站做的好看
  • 有没有在淘宝找人做网站被骗过的台州市环保局网站开发区
  • 公司外文网站制作河南住房和城乡建设厅网站
  • 东莞做网站公司有哪些代码网站推荐
  • 棋类游戏网站开发网站首页顶部图片尺寸
  • 工信部如何查网站备案大连网络推广广告代理
  • 网站建设基本流程心得wordpress首页截断
  • 网站包括哪些内容网站开发的相关技能
  • 百度竞价 百度流量 网站权重qq推广
  • 重庆网站建设总结WordPress简单百度站长插件
  • pc网站转换成微网站工作室推广网站
  • 嘉兴优化网站公司做水果生意去哪个网站
  • 青岛知名网站建设公司排名wordpress商场插件
  • 设计网站猪八戒自己制作logo免费生成器
  • 深圳万齐创享网站建设网站建设基本教程
  • 聊城做网站信息建设工程合同可以分为
  • 网站设计 注意做筹款的网站需要什么资质
  • 家居网站建设费用国土局网站建设经验
  • 企业网站开发教程网站建设更改
  • 违法网站怎么做安全wordpress自定义应用
  • 四平英文网站建设wordpress添加特效
  • 如何在手机上制作网站企业网站 微博模块
  • 网站内容规范网站建设建设公司哪家好
  • 深圳网站制作公司地址如何制作手机版网站
  • 深圳定制网站制作报价网络交易平台