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

初阶c语言(循环语句习题,完结)

前言:

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;} 

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

然后我有问题的是

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

相关文章:

初阶c语言(循环语句习题,完结)

前言&#xff1a; c语言为b站鹏哥&#xff0c;嗯对应视频37集 昨天做的c语言&#xff0c;今天在来做一遍&#xff0c;发现做错了 今天改了平均值的计算&#xff0c; 就是说最大值加上最小值&#xff0c;如果说这个数值非常大的话&#xff0c;两个值加上会超过int类型的最大…...

提升编程效率,体验智能编程助手—豆包MarsCode一键Apply功能测评

提升编程效率&#xff0c;体验智能编程助手—豆包MarsCode一键Apply功能测评 &#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 目录 引言豆包…...

【deepseek-r1本地部署】

首先需要安装ollama,之前已经安装过了&#xff0c;这里不展示细节 在cmd中输入官网安装命令&#xff1a;ollama run deepseek-r1:32b&#xff0c;开始下载 出现success后&#xff0c;下载完成 接下来就可以使用了&#xff0c;不过是用cmd来运行使用 可以安装UI可视化界面&a…...

多用户商城系统的客服管理体系建设

多用户商城系统的运营&#xff0c;客服管理体系建设至关重要。优质的客服服务不仅能提升用户购物体验&#xff0c;还能增强用户对商城的信任与忠诚度&#xff0c;进而促进商城业务的持续增长。以下从四个关键方面探讨如何建设完善的客服管理体系&#xff0c;信息化客服系统在其…...

K8S容器启动提示:0/2 nodes are available: 2 Insufficient cpu.

问题&#xff1a;K8S的容器启动报错0/2 nodes are available: 2 Insufficient cpu. 原因&#xff1a;Pod的资源请求&#xff08;requests&#xff09;设置不当&#xff1a;在Kubernetes中&#xff0c;调度器根据Pod的requests字段来决定哪个节点可以运行该Pod。如果一个Pod声明…...

C++设计模式 - 模板模式

一&#xff1a;概述 模板方法&#xff08;Template Method&#xff09;是一种行为型设计模式。它定义了一个算法的基本框架&#xff0c;并且可能是《设计模式&#xff1a;可复用面向对象软件的基础》一书中最常用的设计模式之一。 模板方法的核心思想很容易理解。我们需要定义一…...

CZML 格式详解,javascript加载导出CZML文件示例

示例地址&#xff1a;https://dajianshi.blog.csdn.net/article/details/145573994 CZML 格式详解 1. 什么是 CZML&#xff1f; CZML&#xff08;Cesium Zipped Markup Language&#xff09;是一种基于 JSON 的文件格式&#xff0c;用于描述地理空间数据和时间动态场景。它专…...

安装并配置 MySQL

MySQL 是世界上最流行的开源关系型数据库管理系统之一&#xff0c;因其高性能、可靠性和易用性而被广泛应用于各种规模的企业级应用中。本文将详细介绍如何在不同的操作系统上安装和配置 MySQL&#xff0c;帮助你快速搭建起一个功能完善的数据库环境。 选择适合你的安装方式 …...

OpenAI推出全新AI助手“Operator”:让人工智能帮你做事的新时代!

引言 随着人工智能技术的不断发展&#xff0c;OpenAI 再次推出令人兴奋的功能——Operator&#xff0c;一个全新的 AI 助手平台。这不仅仅是一个普通的助手&#xff0c;它代表了人工智能技术的又一次飞跃&#xff0c;将改变我们工作和生活的方式。 什么是“Operator”&#xff…...

TensorBoard和Wandb的介绍

TensorBoard 介绍 TensorBoard 是 TensorFlow 提供的一个可视化工具&#xff0c;主要用于帮助开发者监控和分析机器学习模型的训练过程。它的主要功能包括&#xff1a; 模型结构可视化&#xff1a;直观展示神经网络的结构。 训练指标可视化&#xff1a;实时监控训练过程中的损…...

重看Spring聚焦BeanFactory分析

目录 一、理解BeanFactory &#xff08;一&#xff09;功能性理解 &#xff08;二&#xff09;BeanFactory和它的子接口 &#xff08;三&#xff09;BeanFactory的实现类 二、BeanFactory根接口 &#xff08;一&#xff09;源码展示和理解 &#xff08;二&#xff09;基…...

Python基础(上)

1. 基础语法 1.1 环境安装 Python版本: 推荐使用Python 3.6.6及以上开发工具: PyCharm 1.2 基本语法 输出: print("Hello World")​ 注释: 单行注释: # 注释内容​&#xff08;快捷键 Ctrl/​&#xff09; 多行注释: 使用三引号 注释内容​ 注意&#xff1a;不推…...

将Docker容器打包成镜像提交

前言 Docker 是一个开源软件&#xff0c;也是一个开放平台&#xff0c;用于开发应用、交付&#xff08;shipping&#xff09;应用、运行应用。 Docker允许用户将基础设施&#xff08;Infrastructure&#xff09;中的应用单独分割出来&#xff0c;形成更小的颗粒&#xff08;容…...

一文通俗理解为什么需要泛型以及泛型的使用

为什么需要泛型&#xff1f; public static void main(String[] args) {ArrayList list new ArrayList();// 由于集合没有做任何限定&#xff0c;任何类型都可以给其中存放list.add("abc");list.add("def");list.add(5);Iterator it list.iterator();wh…...

人工智能时代下ai智能语音机器人如何以假乱真?

智能语音机器人若要达到以假乱真的效果&#xff0c;需要在以下几个关键方面不断提升&#xff1a; 一、语音合成技术 音色模拟 多维度采样 对大量真人语音样本进行多维度采样&#xff0c;包括不同年龄、性别、地域的人的语音。例如&#xff0c;采集不同年龄段男性从低沉到清亮…...

Sam Altman 揭秘 OpenAI 未来蓝图:GPT-4.5、GPT-5 与模型规范重大更新

OpenAI CEO Sam Altman 近日在 X 平台&#xff08;原 Twitter&#xff09;上分享了关于 GPT-4.5 (代号 “Orion”) 和 GPT-5 的最新进展&#xff0c;同时公布了 OpenAI 模型规范&#xff08;Model Spec&#xff09;的重大更新&#xff0c;强调知识自由与模型行为准则。 核心亮…...

老牌系统工具箱,现在还能打!

今天给大家分享一款超实用的电脑软硬件检测工具&#xff0c;虽然它是一款比较“资深”的软件&#xff0c;但依然非常好用&#xff0c;完全能满足我们的日常需求。 电脑软硬件维护检测工具 功能强大易用 这款软件非常贴心&#xff0c;完全不需要安装&#xff0c;直接打开就能用…...

在vivado中对数据进行延时,时序对齐问题上的理清

在verilog的ISP处理流程中&#xff0c;在完成第一个模块的过程中&#xff0c;我经常感到困惑&#xff0c;到底是延时了多少个时钟&#xff1f;今日对这几个进行分类理解。 目录 1.输入信号激励源描述 1.1将数据延时[9]个clk 1.2将vtdc与hzdc延时[9]个clk(等价于单bit的数据…...

Django REST Framework:如何获取序列化后的ID

Django REST Framework&#xff1a;如何获取序列化后的ID &#x1f604; 嗨&#xff0c;小伙伴们&#xff01;今天我们来聊一聊Django REST Framework&#xff08;简称DRF&#xff09;中一个非常常见的操作&#xff1a;如何获取序列化后的ID。对于那些刚入门的朋友们&#xff…...

QT笔记——QPlainTextEdit

文章目录 1、概要2、文本设计2.1、设置文本2.1、字体样式&#xff08;大小、下划线、加粗、斜体&#xff09; 1、概要 QPlainTextEdit 是 Qt 框架中用于处理纯文本编辑的控件&#xff0c;具有轻量级和高效的特点&#xff0c;以下是它常见的应用场景&#xff1a; 文本编辑器&am…...

链表 —— 常用技巧与操作总结详解

引言 链表作为一种动态数据结构&#xff0c;以其灵活的内存管理和高效的插入删除操作&#xff0c;在算法与工程实践中占据重要地位。然而&#xff0c;链表的指针操作复杂&#xff0c;容易引发内存泄漏和野指针问题。本文博主将从基础操作到高阶技巧&#xff0c;系统化解析链表的…...

Linux下学【MySQL】常用函数助你成为数据库大师~(配sql+实操图+案例巩固 通俗易懂版~)

绪论​ 每日激励&#xff1a;“唯有努力&#xff0c;才能进步” 绪论​&#xff1a; 本章是MySQL中常见的函数&#xff0c;利用好函数能很大的帮助我们提高MySQL使用效率&#xff0c;也能很好处理一些情况&#xff0c;如字符串的拼接&#xff0c;字符串的获取&#xff0c;进制…...

【C++BFS 离散化】1036. 逃离大迷宫|2164

本文涉及知识点 CBFS算法 LeetCode1036. 逃离大迷宫 在一个 106 x 106 的网格中&#xff0c;每个网格上方格的坐标为 (x, y) 。 现在从源方格 source [sx, sy] 开始出发&#xff0c;意图赶往目标方格 target [tx, ty] 。数组 blocked 是封锁的方格列表&#xff0c;其中每个…...

[c语言日寄]在不完全递增序中查找特定要素

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…...

HtmlRAG:RAG系统中,HTML比纯文本效果更好

HtmlRAG 方法通过使用 HTML 而不是纯文本来增强 RAG 系统中的知识表示能力。通过 HTML 清洗和两步块树修剪方法&#xff0c;在保持关键信息的同时缩短了 HTML 文档的长度。这种方法优于现有基于纯文本的RAG的性能。 方法 其实主要看下围绕html提纯思路&#xff0c;将提纯后的…...

LeetCode题解:2690. 无穷方法对象,Proxy

Problem: 2690. 无穷方法对象 思路 这个问题的核心在于创建一个对象&#xff0c;该对象能够响应对其任何方法的调用&#xff0c;并返回调用的方法名称。为了实现这一点&#xff0c;我们可以利用 JavaScript 中的 Proxy 对象。Proxy 对象允许我们自定义对象的基本操作&#xff…...

在WPS中通过JavaScript宏(JSA)调用本地DeepSeek API优化文档教程

既然我们已经在本地部署了DeepSeek,肯定希望能够利用本地的模型对自己软件开发、办公文档进行优化使用,接下来就先在WPS中通过JavaScript宏(JSA)调用本地DeepSeek API优化文档的教程奉上。 前提: (1)已经部署好了DeepSeek,可以看我的文章:个人windows电脑上安装DeepSe…...

2023-arXiv-CoT Prompt 思维链提示提升大型语言模型的推理能力

arXiv | https://arxiv.org/abs/2201.11903 摘要&#xff1a; 我们探讨了如何生成思维链&#xff08;一系列中间推理步骤&#xff09;显著提高大型语言模型执行复杂推理的能力。在三个大型语言模型上的实验表明&#xff0c;思维链提示提高了一系列算术、常识和符号推理任务的性…...

程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<10>

大家好啊&#xff0c;我是小象٩(๑ω๑)۶ 我的博客&#xff1a;Xiao Xiangζั͡ޓއއ 很高兴见到大家&#xff0c;希望能够和大家一起交流学习&#xff0c;共同进步。 今天我们继续来复习指针… 目录 一、看一段代码二、 一维数组传参的本质三、冒泡排序3.1 基本思想四、二…...

如何在MacOS上查看edge/chrome的扩展源码

步骤 进入管理扩展页面点击详细信息复制对应id在命令行键入 open ~/Library/Application Support/Microsoft Edge/Default/Extensions/${你刚刚复制的id} 即可打开访达中对应的更目录 注意 由于原生命令行无法直接处理空格 ,所以需要加转义符\,即&#xff1a;open ~/Librar…...