0基础认识C语言(分支循环)

大家今天有没有开心的敲代码呢?hhhhhh让我们今天继续走进C语言~


前提回顾:

上节课我们学习了一些单目操作符和双目操作符,还聊了一会儿 scanf 和 printf ,今天我们对前一次的内容做一次补充

1.如果你想输出一个保留五位小数并且让他右对齐十格,你应该怎么办呢?这个时候我们也是有办法的,以输出 2.421 为例,代码如下:

#include <stdio.h>
int main()
{printf("%*.*f\n", 10, 5, 2.421);printf("%10.5f\n", 2.421);return 0;
}

这里给出两种方法,无论哪一种都可以实现

2. scanf 会自动过滤空白符,比如空格,制表符,换行符等

3.上次让大家尝试了一下用 scanf 实现多组输入,这里给大家演示一下多组输入(目前用循环给大家演示)

这里要用到循环,如果没有看懂,学完循环和选择再看可能会好理解一些

#include <stdio.h>
int main()
{//遇到特殊字符停止输入,以输入#停止输入为例char a ;while (scanf("%c", &a) != EOF){if (a != '#')printf("%c", a + 1);elsebreak;}//这里为了区分输入输出所以输出要加一return 0;
}

这个要知道 scanf 的返回值是怎么理解的,聊聊 scanf 的返回值,其实是当你输入的数据一一对应的时候,这个时候有几个匹配成功,返回值就是几,而这里EOF的意思是输入的内容不为空就继续输入,同样的,如果想输入两个数据,可以这样,代码如下:

#include <stdio.h>
int main()
{int a = 0;int b = 0;while (scanf("%d %d", &a, &b) == 2){printf("66大顺");}/*因为没有给定停止条件,所以这里会一直循环*/return 0;
}

关系操作符的补充:

大于        小于        等于        不等于        大于等于        小于等于        赋值

   >             <           ==              !=                >=                   <=                =

这里大家要注意赋值和等于不是一回事,赋值是把右边的值赋给左边的值,而等于只能判断左右两边是否相等


 正文继续: 

一、选择结构(if 和 switch)

1.if

if 语句一般用来判断一些表达式,用法一般为:

if ( 表达式 ){表达式成立要运行的代码;}

else if ( 表达式 ){表达式成立要运行的代码;}

else{以上两行都不满足的其它所有情况要运行的代码;}

这个逻辑是这样的:在上面三行代码中,如果要用一定是有第一行的,另外两行看自己需求,如果三行都写,那么只会进入三行中的其中一行代码,要是你写了两个 if 语句(也就是第一行),则两个 if 都会进行判断

2.switch

 switch 一般也是用来分情况而定,用法一般为:

switch(整型表达式)

{

        case 0:

        caes 1:

        ......

}

这里大家要注意

  • case 后面跟的是整型常量表达式,不能是变量名称,也不能是浮点数
  • 而且如果没有break停止的话会从整型表达式给出的情况继续往下执行语句,直到最后一条语句执行完毕
  • default的用法是可以放在任意位置的,如果不在 case 的范围内,就会执行 default 的语句

大家可以自行尝试比如输出1~7分别对应出周一到周日的情景

二、循环(for & while & do while)

1. for 循环

for (初始值; 循环条件; 变量的变化)

{

        循环内容

}

为了让大家更加清楚,我们直接举一个最简单的例子,打印1~5:

#include <stdio.h>
int main()
{int i = 1;for (i = 1; i <= 5; i++){printf("%d\n", i);}return 0;
}

首先我们要给变量 i 赋值为1,其次在 for 循环的语句里面,第一个分号前表示变量的初始值(i = 1),第二个分号表示变量的循环条件(i <= 5【意思为只要 i <= 5就会循环】),最后则是此变量的变化规则(i++【表示每次循环 i 都会 +1】)

2.while循环

while(表达式)

{

        循环的内容

}

这里同样我们用打印1~5举例:

#include <stdio.h>
int main()
{int i = 1;while (i <= 5){printf("%d\n", i);i++;}return 0;
}

 这里就是每次输出完 i 的值,程序继续往下走,然后 i++ 表示 i+1 ,这个时候 i 就会从1变成2,依此类推,直到 i > 5,循环结束

3.do while 

do

{

        循环内容

}while(表达式)

 这里的意思是先进入循环再做判断,大家可以尝试输出1~5(相当于给大家遗留一个小问题,下次会说~)


今天的内容对新手而言,大家要好好消化,自己多实践几次,看懂和自己会敲代码是两种体验

冲冲冲!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI 近期动荡:解雇 Sam Altman 事件分析与 AI 未来展望

引言 OpenAI 的动荡从未停止。最近&#xff0c;由于 OpenAI 高层领导的更迭&#xff0c;引发了广泛的关注和讨论。特别是在 Sam Altman 被解雇后&#xff0c;再次回归 CEO 职位的过程&#xff0c;更是引起了公众和业内的巨大反响。前 OpenAI 董事会成员 Helen Toner 在最新一期…

探索未来科技的前沿:从量子计算到人机融合

探索未来科技的前沿:从量子计算到人机融合 科技的飞速发展正在不断改变我们的生活方式。从人工智能(AI)到物联网(IoT),再到区块链和量子计算,每一个新兴技术都在推动着我们的社会走向一个全新的未来。本文将深入探讨几项最新的前沿科技,了解它们如何改变我们的世界以及…

如何利用AI大模型给我写程序

文章目录 1&#xff0c;应用情景&#xff08;给文件夹里的图片批量重命名&#xff09;2&#xff0c;选择合适的AI大模型3&#xff0c;复制AI给出来的代码&#xff0c;在本地执行4&#xff0c;结果检查 1&#xff0c;应用情景&#xff08;给文件夹里的图片批量重命名&#xff09…

JasperReport-动态数据源数据填充

一、数据填充 在正式环境中,报表中的内容或数据通常是通过查询底层数据源获取然后再进行数据填充。JasperReport的JAVA SDK中,提供了多种方法提供数据填充(如下其中一个示例): /** * 填充数据构造JasperPrint * is: 文件输入流 * parameters:参数 * connection:数据源…

代码随想录算法训练营第二十七天 | 39. 组合总和、40.组合总和II、131.分割回文串

39. 组合总和 题目链接&#xff1a;https://leetcode.cn/problems/combination-sum/ 文档讲解&#xff1a;https://programmercarl.com/0039.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8C.html 视频讲解&#xff1a;https://www.bilibili.com/video/BV1KT4y1M7HJ 思路 这道题和之前做…

如何通过拟合平面找到lidar点云数据intensity导数

source: chatgpt 我是知识的搬运工&#xff0c;尝试弄懂chat老师给我写的代码&#xff0c;我的思考历程是这样的 我跟它说生成一个关于intensity的导数&#xff0c;这是它生成的结果&#xff1a; def compute_gradient(neighbors_pts, neighbors_int):Fit a plane I(x, y, z)…

基于java的CRM客户关系管理系统(六)

目录 5.3 表现层设计 5.3.1 模型层&#xff08;M&#xff09; 5.3.2 视图层&#xff08;V&#xff09; 5.3.3 控制层&#xff08;C&#xff09; 5.4 系统主要功能模块的实现 5.4.1 登录功能的实现 5.4.2 客户管理的实现 5.5 本章小结 参考文献 前面内容请移步 基于java…

【CSS】scroll-snap属性详解

目录 scroll-snap-type方向&#xff1a;捕捉强度&#xff1a; scroll-snap-stopscroll-paddingscroll-margin实际使用示例 scroll-snap 是一个用于实现流畅滚动捕捉效果的 CSS 模块。它包含多个属性&#xff0c;可以应用于滚动容器和滚动子项上。 scroll-snap-type scroll-sna…

k8s学习--Secret详细解释与应用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Secret什么是Secret?Secret四种类型及其特点Secret应用案例&#xff08;1&#xff09;将明文密码进行base64编码&#xff08;2&#xff09;编写创建secret的YAML文…

笔试训练2

牛客.单词搜索 刚开始我就想是搜索&#xff0c;但是不清楚bfs还是dfs更好&#xff0c;我尝试了bfs但是队列存东西&#xff0c;没有我想象的那么好写&#xff0c;所以我决定试试dfs import java.util.*;public class Solution {static int m 0;static int n 0;static int […

【Qt快速入门(一)】- Qt简介

目录 Qt快速入门&#xff08;一&#xff09;Qt简介历史背景跨平台特性核心组件开发工具Qt Creatorqmake和CMake Qt的主要应用领域桌面应用移动应用嵌入式系统游戏开发Web应用 Qt社区和生态系统Qt MarketplaceQt认证 未来发展 Qt快速入门&#xff08;一&#xff09; Qt简介 Qt…

【人工智能Ⅱ】实验8:生成对抗网络

实验8&#xff1a;生成对抗网络 一&#xff1a;实验目的 1&#xff1a;理解生成对抗网络的基本原理。 2&#xff1a;学会构建改进的生成对抗网络&#xff0c;如DCGAN、WGAN、WGAN-GP等。 3&#xff1a;学习在更为真实的数据集上应用生成对抗网络的方法。 二&#xff1a;实验…

SaaS销售新指标|一文带你读懂什么是反向拒付指标

saas企业销售也需要一系列的指标来衡量企业运营情况如何&#xff1f;有哪些值得改善的地方&#xff1f;今天林叔发现一个比较有意思的新指标&#xff1a;反向拒付。希望能帮助saas企业更好的运营。 一、什么是反向拒付&#xff1f; **反向拒付指标&#xff08;反拒付指标&…

C基础-标准库下

上:http://t.csdnimg.cn/qj5uA 目录 七. math.h 八. setjmp.h 九. signal.h 十. stdarg.h 十一.stddef.h 十二. stdio.h 十三. stdlib. 十四. string.h 十五. time.h 七. math.h 定义了各种数学函数和一个宏。 宏和函数描述 序号宏 & 描述1HUGE_VAL 当函数的结…

Vue3——实现word,pdf上传之后,预览功能(实测有效)

vue-office/pdf - npm支持多种文件(**docx、excel、pdf**)预览的vue组件库&#xff0c;支持vue2/3。也支持非Vue框架的预览。. Latest version: 2.0.2, last published: a month ago. Start using vue-office/pdf in your project by running npm i vue-office/pdf. There are …

怎么样的电销机器人才是好的?智能语音机器人部署

在现代社会&#xff0c;营销策略对于企业的成功至关重要。随着技术的发展&#xff0c;电销机器人正在改变传统营销模式&#xff0c;取而代之的是更高效&#xff0c;更自动化和更个性化的方式。 当然&#xff0c;如何选择合适的电销机器人是很重要的。所以&#xff0c;我们就来看…

Mybatis实现树形结构方式

1&#xff0c;三级分类树形结构查询 /*** DDD(Domain-Driven Design): 领域驱动设计** 三级分类树形结构&#xff1b;* 支持无限层级&#xff1b;* 当前项目只有三级*/ Data public class CategoryTreeTo {private Long categoryId; //1private String categoryName;private …

ENVI 5.3/6.0打开Landsat 8/9 C2L2级别数据(带有Metadata),附常见问题

ENVI 5.3/6.0打开Landsat 8/9 C2L2级别数据&#xff08;带有Metadata&#xff09; 文章目录 ENVI 5.3/6.0打开Landsat 8/9 C2L2级别数据&#xff08;带有Metadata&#xff09;前言数据下载ENVI 5.3打开Landsat 8 C2L2级别数据ENVI 5.3打开Landsat 9 C2L2级别数据ENVI 6.0打开La…

RDMA介绍

RDMA全称是Remote Direct Memory Access&#xff0c;即远程直接内存访问&#xff0c;是一种高性能网络通信技术&#xff0c;可以使计算机直接访问远端计算机的内存&#xff0c;而无需在本地和远程计算机之间进行数据复制。 相比于传统的网络通信方式&#xff0c;RDMA技术具有更…

手写防抖debounce

手写防抖debounce 应用场景 当需要在事件频繁触发时&#xff0c;只执行最后一次操作&#xff0c;可以使用防抖函数来控制函数的执行频率,比如窗口resize事件和输入框input事件&#xff1b; 这段代码定义了一个名为 debounce 的函数&#xff0c;它接收两个参数&#xff1a;fn…