C语言 循环语句 (1) 讲述循环概念演示while语句

2024-04-27 23:44

本文主要是介绍C语言 循环语句 (1) 讲述循环概念演示while语句,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

接下来 我们来说 循环控制结构
在这里插入图片描述

循环的基本原理及循环语句

再说原理之前 我们 先来看几个案例
要求是 让用户在键盘中输入三个整数 然后将这些整数求和
这个用我们之前的知识就能轻松搞定

#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>int main() {int a;int b;int c;scanf("%d", &a);scanf("%d", &b);scanf("%d", &c);int n = (a + b + c);printf("三个数的和为%d",n);return 0;
}

这里 我们用了三个 scanf 给 a b c 三个变量赋值
然后将它们相加 形成 n
然后输出内容
我们运行代码

控制台中 先后输出 2 3 4
输出内容中 计算无误 9
在这里插入图片描述
那么 如果是十个呢?

要写十个scanf吗?

或者 我们可以用下图方式解决 写在同一个 scanf当中
在这里插入图片描述
但是 这种方式显然不是最优解 因为 如果更多 看着就比较乱了

其实 分析问题本质 就是需要寻找一个 将 scanf 语句执行N次的方式
重复执行 N 次某动作 这个概念就是 循环

所谓循环,就是在给定条件成立的情况下,重复执行一个程序段;给定条件不成立时,退出循环,再执行循环下面的程序。
在这里插入图片描述

循环语句

C语言 为我们提供了 三种循环语句

while 语句
表达式如下
在这里插入图片描述
运行流程图如下
简单说 每次执行都会进行一次判断 就是我们图中的表达式 如果条件为真 条件成立 就继续循环 条件不成立 为假了之后 就走出来不再循环了
在这里插入图片描述
它的特点是先判断条件 然后再执行循环中的语句

我们就用while循环来完成我们之前说的 输入10个整数 然后求和的案例
代码如下

#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>int main() {int number, i, sum;sum = 0;i = 1;while (i <= 10) {scanf("%d", &number); // 修正了 scanf 的括号和逗号使用sum = sum + number;i = i + 1;}printf("%d\n", sum); // 修正了 printf 的括号使用return 0;
}

运行之后 我们依次输入 1 2 3 4 5 6 7 8 9 10
在这里插入图片描述
运行结果 55 计算正常

来讲讲逻辑 我们开始定义了 三个整数类型的变量 number i sum
然后 我们定义 sum 为0
i 为1
while 条件 如果 i 小于或者等于 10 就继续执行
while 中 我们编写 scanf 让用户输入一个整数 赋值给 number
然后 将sum 重新赋值 结果为 sum 与 number相加 就是总数与用户输入的数相加
然后 将i 加一
走出循环后 执行 printf 输出结果

这篇关于C语言 循环语句 (1) 讲述循环概念演示while语句的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941815

相关文章

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo

poj3750约瑟夫环,循环队列

Description 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。 Input 第一行输入小孩的人数N(N<=64) 接下来每行输入一个小孩的名字(人名不超过15个字符) 最后一行输入W,S (W < N),用

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

C语言:柔性数组

数组定义 柔性数组 err int arr[0] = {0}; // ERROR 柔性数组 // 常见struct Test{int len;char arr[1024];} // 柔性数组struct Test{int len;char arr[0];}struct Test *t;t = malloc(sizeof(Test) + 11);strcpy(t->arr,

C语言指针入门 《C语言非常道》

C语言指针入门 《C语言非常道》 作为一个程序员,我接触 C 语言有十年了。有的朋友让我推荐 C 语言的参考书,我不敢乱推荐,尤其是国内作者写的书,往往七拼八凑,漏洞百出。 但是,李忠老师的《C语言非常道》值得一读。对了,李老师有个官网,网址是: 李忠老师官网 最棒的是,有配套的教学视频,可以试看。 试看点这里 接下来言归正传,讲解指针。以下内容很多都参考了李忠老师的《C语言非