您的位置:首页 > 教育 > 锐评 > 网络界面设计_app开发公司一般多少人_搜索引擎技术基础_厦门seo优化

网络界面设计_app开发公司一般多少人_搜索引擎技术基础_厦门seo优化

2025/2/28 21:42:10 来源:https://blog.csdn.net/2402_83273954/article/details/145621735  浏览:    关键词:网络界面设计_app开发公司一般多少人_搜索引擎技术基础_厦门seo优化
网络界面设计_app开发公司一般多少人_搜索引擎技术基础_厦门seo优化

1.练习1:多个字符从两端移动,向中间汇聚

编写代码,演示多个字符从两端移动,向中间汇聚

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{//解题思路://根据题意再结合数组的思想我们可以设置两个数组//arr1[left]/[right]替换到arr2[left]/right(每一步替换一个)//就可以达成题目的目的。//↓↓↓char arr1[] = "wo hao shuai!";char arr2[] = "             ";int left = 0;int right = strlen(arr1) - 1;//这里使用strlen函数需要包含头文件 <string.h>//strlen计算字符串长度时遇到/0就会停止。printf("%s\n", arr2);while (left <= right){arr2[left] = arr1[left];arr2[right] = arr1[right];left++;right--;printf("%s\n", arr2);}return 0;
}

运行结果:

 

这样写仅仅只是显示了每一步的结果,并没有一个动态过程,原因是因为代码运行速度过快,所以此时我们可以加入sleep函数 :

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<windows.h>
int main()
{//解题思路://根据题意再结合数组的思想我们可以设置两个数组//arr1[left]/[right]替换到arr2[left]/right(每一步替换一个)//就可以达成题目的目的。//↓↓↓char arr1[] = "wo hao shuai!";char arr2[] = "             ";int left = 0;int right = strlen(arr1) - 1;//这里使用strlen函数需要包含头文件 <string.h>//strlen计算字符串长度时遇到/0就会停止。printf("%s\n", arr2);while (left <= right){Sleep(1000);//单位是ms  Sleep休眠函数S一定要大写!!arr2[left] = arr1[left];arr2[right] = arr1[right];left++;right--;printf("%s\n", arr2);}return 0;
}

运行结果:(因为上传视频太复杂了,大家可以自行下去尝试。

进阶 :

有兴趣的朋友们可以加system(“cls”)函数加入到以上函数中试试,(需要包含#include<stdlib.h>这个头文件。

2.练习2:二分查找

在⼀个升序的数组中查找指定的数字n,很容易想到的⽅法就是遍历数组,但是这种⽅法效率⽐较低。
⽐如我买了⼀双鞋,你好奇问我多少钱,我说不超过300元。你还是好奇,你想知道到底多少,我就让你猜,你会怎么猜?你会1,2,3,4...这样猜吗?显然很慢;⼀般你都会猜中间数字,⽐如:150,然后看⼤了还是⼩了,这就是⼆分查找,也叫折半查找。(使用前提是所需查找的数组内部是有序的。)

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{int arr[] = { 1,2,3,4,5,6,7,8,9,10 };int left = 0;int right = sizeof(arr) / sizeof(arr[0]) - 1;int key = 7;//要找的数字int mid = 0;//记录中间元素的下标int find = 0;while (left <= right){mid = left + (right - left) / 2;if (arr[mid] > key){right = mid - 1;}else if (arr[mid] < key){left = mid + 1;}else{find = 1;break;}}if (1 == find)printf("找到了,下标是%d\n", mid);elseprintf("找不到\n");
}

执行结果:


完。 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com