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

广州品牌网站建设 优美营销软件app

广州品牌网站建设 优美,营销软件app,手机微网站怎么做的,自己做外贸网站前言: c语言为b站鹏哥,嗯对应视频37集 昨天做的c语言,今天在来做一遍,发现做错了 今天改了平均值的计算, 就是说最大值加上最小值,如果说这个数值非常大的话,两个值加上会超过int类型的最大…

前言:

c语言为b站鹏哥,嗯对应视频37集

昨天做的c语言,今天在来做一遍,发现做错了

今天改了平均值的计算,

就是说最大值加上最小值,如果说这个数值非常大的话,两个值加上会超过int类型的最大值,从而导致数值的重新计算,导致结果不稳定,所以换一种计算方法

第二题,折半查找法

环境介绍,就是dev c++软件运行编译

就是说最大值减去最小值,然后中间有个差值,将他分成一半给最小值,那两个就都是平均值了

#include <stdio.h>
int main()
{int arr[] = {1,2,3,4,5,6,7,8,9,10};int left =0;int pj = sizeof(arr)/sizeof(arr[0]);  //就是那个sizeof计算字符串整型都可以用,全部元素都计算了//定义一个输入int k =6; int right=pj-1;for(left=0; left<=right; left++){int mid =left + (right-left)/2;if(arr[mid]<k){left = mid +1;}if(arr[mid] > k){right = mid - 1;}else{printf("找到了,下标为:%d\n", mid);}}return 0;
}

嗯,就是正确的下标应该是5,但是打印的下标为4,。。。

我知道了

我用的for循环,而且我每次循环,都将left加1了,导致就是计算结果不准,至于为什么等于4我就没有深究了,

所以这个还是用for循环比较好,当然我把第三个表达式删掉了,也可以得到正确的值,就这样

    for(left=0; left<=right; )

这里也是会造成死循环,因为把left++去掉了,left和right不变了

修改的代码

#include <stdio.h>
int main()
{int arr[] = {1,2,3,4,5,6,7,8,9,10};int left =0;int pj = sizeof(arr)/sizeof(arr[0]);  //就是那个sizeof计算字符串整型都可以用,全部元素都计算了//定义一个输入int k =6; int right=pj-1;while(left <= right){int mid =left + (right-left)/2;if(arr[mid]<k){left = mid +1;}if(arr[mid] > k){right = mid - 1;}else{printf("找到了,下标为:%d\n", mid);break;}}return 0;
}

为啥这个要加break,不然会造成死循环,因为这个while循环,找到了之后并不会变化里面的right和left值,所以while循环的表达式永远为真,就造成循环

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

strlen函数,这个是统计  \0  之前的元素,适合用于计算字符串的长度

sizeof函数,统计所有元素,包括\0

strlen,如果需要使用这个函数,需要加上头文件,就是这个,#include <string.h>

sleep函数,需要使用#include <windows.h>,这个是头文件

systemctl函数,包含 #include <stdlib.h>,执行系统命令(dev c++好像不用包含额外头文件)

源代码

//编写代码,演示多个字符从两端移动,向中间汇聚//welcome to bit!!!!
//##################
//we##############!!
//...........
//welcome to bit!!!!int main()
{char arr1[] = "welcome to bit!!!!";char arr2[] = "##################";int right = strlen(arr2) - 1;  //strlen比较好算字符串的长度,因为不计算/0在里面,字符串数组里默认有\0. int left =0;while(left < right){arr2[left] = arr1[left];arr2[right] = arr1[right];left ++;right --;Sleep(1000); system("cls");printf("%s\n", arr2);}}

编写代码实现,模拟用户登录情景,并且只能登录三次。
如果密码正确则提示登录成功,(只允许输入三次密码如果三次均输入错误,则退出程序。)

字符串比较不能直接这样写

    if(password == "abcdef")

嗯.....别问,问就是会报错,然后就是要利用函数

strcmp函数,用于对比字符串是否一致,一致返回0

代码

int main()
{int i = 0;char password[100] = {0}; //这里需要指派空间大一点while(i < 3){printf("请输入密码:");scanf("%s", password);	if (strcmp(password, "abcdef") == 0){printf("登录成功\n");break;}else{printf("登录失败,请重试\n");}i++;} return 0;} 

数组那里的空间需要给大一点,嗯,不指名空间大小的话,就只能存一次

然后我有问题的是

为啥需要将输入函数放到循环里面,放到循环外面就不起作用了,也就是程序不能正常运行

http://www.shuangfujiaoyu.com/news/31573.html

相关文章:

  • 为什么苏州网络进不了网站广告文案经典范例200字
  • syntax highlighter for wordpress合肥seo网站排名优化公司
  • 山西做网站的企业他达拉非片
  • 如何利用视频网站做推广合肥网站seo费用
  • 自己网站给别人网站做外链产品关键词的搜索渠道
  • 苹果电脑做网站宁波优化网页基本流程
  • 专业网网站建设视频号关键词搜索排名
  • 制作简历织梦seo排名优化教程
  • 日语网站建设百度推广技巧方法
  • 外包加工网官网下载安装京东seo搜索优化
  • 南江红鱼洞水库建设管理局网站百度关键词推广2元一天
  • 做网站不用服务器厦门人才网官网招聘信息网
  • 什么网站可以兼职做平面设计站长之家关键词查询
  • 昆明有网站的公司平台seo什么意思
  • 个人网站免费注册优化大师手机版
  • 茶叶网站策划郑州网站seo技术
  • 网站开发的功能需求怎么写怎么免费建立网站
  • 公司网站做优化少钱郑州seo联系搜点网络效果好
  • 3g网站制作上海快速排名优化
  • 威海哪里可以做网站安卓优化大师破解版
  • 福田政府在线官网seo权重优化软件
  • 模板网站 没有独立的ftp百度广告投放
  • 宁夏回族自治区住房和城乡建设厅网站百度下载安装
  • 城市建设模拟游戏网站网站推广的技巧
  • 活动手机网站开发会计培训班初级费用
  • 公司网站二维码生成器合肥网站排名提升
  • 外贸网站做开关行业的哪个好百度seo外包
  • 国家企业查询官网优化网站的步骤
  • 重庆seo快速优化软件郑州百度快照优化排名
  • wordpress 会议网站百度网盘资源搜索引擎