C语言程序设计-[14] 循环结构的一些应用(续)

 1、n!

对于这个问题,首先分析四个要素如下:

循环初始化条件:i=1; fact=1;  //n!=1*2*3*...*n,从这个问题来看,首先需要乘起来的数有n个,第一个即i=1,然后需要fact来存储乘起来的数(初始时fact=1,因为是乘法)。另外,还要输入一个n值。

循环判断条件:i<=n;  //从上面问题来看,要乘起来数是n个,所以需要i<=n。

循环体: fact*=i;  // 从上面问题来看, 对于每一个数需要乘起来,刚好第i个数就是i,所以fact=fact*i。

循环修正条件: i++;   //从上面问题来看,为了进入下一轮循环,需要让这个数+1。

对于这种有数值区间范围遍历的问题,可以套用while语句循环结构或for语句循环结构(两种可以相互转换,见前面讲解),代码如下:

#include "stdio.h"int main()
{  int i, fact=1, n;printf("Please input n:");scanf("%d", &n);for( i=1;i<=n;i++ )fact*=i;printf("%d!=%d\n", n,fact);return 0;
}

2、求1*3*5*...*(2n-1)。

这个问题与上面类似,但是每个数与i不相等,需要另计算。

对于这个问题,首先分析四个要素如下:

循环初始化条件:i=1; fact=1;  //从上面问题来看,首先需要乘起来的数有n个,第一个即i=1,然后需要fact来存储乘起来的数(初始时fact=1,因为是乘法)。另外,还要输入一个n值。

循环判断条件:i<=n;  //从上面问题来看,要乘起来数是n个,所以需要i<=n。

循环体: fact*=(2*i-1);  // 从上面问题来看, 对于每一个数需要乘起来,第i个数不是i,而是2*i-1,所以fact=fact*(2*i-1)。

循环修正条件: i++;   //从上面问题来看,为了进入下一轮循环,需要将i+1。这时,可以理解i为循环次数,并建立需要乘起来的数与循环次数之间的关系为:2*i-1。

对于这种有数值区间范围遍历的问题,可以套用while语句循环结构或for语句循环结构(两种可以相互转换,见前面讲解),代码如下:


#include "stdio.h"int main()
{  int i, fact=1, n;printf("Please input n:");scanf("%d", &n);for( i=1;i<=n;i++ )fact*=(2*i-1);printf("fact=%d", fact);return 0;
}

3、求输入的10个数中的最大值或最小值。

对于这个问题,首先分析四个要素如下:

循环初始化条件:scanf("%f",&x); max;  //从上面问题来看,首先输入一个数x才能考虑是否为最大值,然后需要max来存储最大值(初始时max=x,即第一个数x为最大值,因为目前只有一个数)。另外,需要输入10个数,因为第一个数已输入并赋给max,那接下来要输入第二个数,所以i=2。

循环判断条件:i<=10;  //从上面问题来看,要输入的数是10个,所以需要i<=10。

循环体: scanf("%f",&x); if(max<x) max=x;  // 从上面问题来看,对于每一个输入的数x,需要与max进行比较,若新输入的x大于目前的max,则更新max=x。

循环修正条件: scanf("%f",&x);   //从上面问题来看,为了进入下一轮循环,需要输入下一个数。

对于这种有数值区间范围遍历的问题,可以套用while语句循环结构或for语句循环结构(两种可以相互转换,见前面讲解),代码如下:

#include "stdio.h"int main()
{ float  x;int  i;float  max;printf("输入第1个数:");scanf("%f", &x);max =x; for(i=2;i<=10;i++){printf("输入第%d个数:", i);scanf("%f", &x);if(x> max) max=x;}printf("最大值=%f\n", max);return 0;
} 

注:求最小值也是类似的,只需要将max改为min,以及将x>max改为x<min即可;

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

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

相关文章

SpringBoot下载resources目录下的文件

1.引入SpringBoot和hutool依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.22</version></dependency>2.在项目resources目录下放入模版文件&#xff0c;结构如下&#xff1a…

【学习笔记】解决在声音输出中找不到蓝牙耳机设备的问题

【学习笔记】在声音输出中找不到蓝牙耳机设备 在使用蓝牙耳机的时候&#xff0c;遇见一个问题&#xff0c;就是在电脑在连接蓝牙耳机之后&#xff0c;在声音输出中找不到蓝牙耳机设备&#xff0c;只能使用扬声器播放声音。电脑使用的是Windows 11系统。后来在网上寻找解决方案…

使用MAC电脑、iPhone 真机调试 H5页面

使用MAC电脑、iPhone 真机调试 H5页面 简介Safari 浏览器设置iPhone 手机设置开始调试 简介 为方便在 H5开发过程中在真实手机调试 H5页面&#xff0c;可进行一下设置 Safari 浏览器设置 在 Mac 电脑打开浏览器后&#xff0c;点左上角的" Safari 浏览器" -> “设…

LVS详细配置

目录 LVS简介 LVS集群体系结构 LVS相关术语 lvs集群的类型 1、NAT模式 NAT简介 NAT模式数据逻辑 2、DR模式 DR模式简介 DR模式数据逻辑 DR模式的特点 3、TUN模式 TUN模式简介 TUN模式数据传输过程 TUN模式特点 4、fullnet模式 LVS模式总结 LVS调度算法 LVS静…

每天五分钟深度学习pytorch:训练神经网络模型的基本步骤

本文重点 本文个人认为是本专栏最重要的章节内容之一,前面我们学习了pytorch中的基本数据tensor,后面我们就将学学习深度学习模型的内容了,在学习之前,我们先来看一下我们使用pytorch框架训练神经网络模型的基本步骤,然后我们下面就将这些步骤分解开来,详细学习。 代码…

力扣第45题:跳跃游戏 贪心DP(C++)

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - 1] 的最…

途博V16 g110m,g120,g120c,g120d未安装(已解决)

官网下载驱动并安装就行&#xff0c;安装流程和安装软件本体的流程一样&#xff0c; 驱动下载地址&#xff1a; SIOS 安装流程参考&#xff1a;博途V16软件官方下载和安装_博途软件怎么从官网下载-CSDN博客

Python之布尔(逻辑)运算符:and、or、not

这是《Python入门经典以解决计算问题为导向的Python编程实践》65-73页的内容&#xff0c;是对上一篇内容的补充&#xff0c;主要讲了布尔运算符。 深入控制语句 1、布尔变量2、关系运算符3、布尔运算符&#xff08;逻辑运算符&#xff09;4、优先级自测练习 1、布尔变量 布尔…

Node.js是什么?如何安装

目录 一、前言 1、JavaScript语言-----前端开发 2、JavaScript语言-----后端开发 总结&#xff1a;如果我们写了一段 js 代码&#xff0c;把他放到浏览器中执行&#xff0c;是在做前端开发&#xff1b;如果放在Node.js下运行&#xff0c;是在做后端开发。 二、安装 1、打开…

如何学习一门编程语言?

“好读书&#xff0c;不求甚解&#xff1b;每有会意&#xff0c;便欣然忘食。” 如何学习一门编程语言&#xff1f; 如何学习一门编程语言&#xff1f;1.做好笔记2.保证充足的学习时间和练习时间。不能超过三天断学。会遗忘和变得懒散。明确学习的目标 3.学习顺序进入基础部分不…

string详解(1)

1.C语言中的字符串 C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&#xff0c;而且底层空间需要用户自己管理&…

地接侠小程序(Taro)兼容IOS系统Bug解决(redux持久化不成功、整个页面会拖动)

在写地接侠小程序的时候就是有考虑过兼容问题的&#xff0c;但是在写的过程中并没有用苹果手机进行调式&#xff0c;一直都是用的自己的安卓手机&#xff0c;一直都是没有问题的&#xff0c;但是毕竟项目需要上线&#xff0c;于是在上线前用苹果手机测试果然出现了预想中的问题…

确保线程安全:深入理解.Net开发中 `Control.InvokeRequired` 属性

1. 前言 在 .NET 开发中&#xff0c;特别是在 Windows 窗体应用程序中&#xff0c;多线程编程是一个常见的需求。为了确保界面的稳定性和响应性&#xff0c;需要掌握如何在不同线程之间安全地进行操作。在本文中&#xff0c;我们将深入探讨 Control.InvokeRequired 属性&#x…

Windows--WSL2--Ubuntuon--Docker

编写目的&#xff1a; 在Windows上安装Docker&#xff0c;用Docker安装Gitlab、Jenkins等软件。 文章记录一下Windows上安装Docker的过程。 参考文档&#xff1a; 旧版 WSL 的手动安装步骤 | Microsoft Learn 下面用"参考文档"代替 目录 第一步&#xff1a;启…

java实现将数据分别写入excel和word里面,并将这2个文件压缩进行下载,vue调用接口进行下载

数据导入word和excel并通过vue调用接口下载 1、后端接口开发1.1、通过EasyExcel将数据写入excel里面1.2、设置word模板,通过 WordExportUtil.exportWord07将数据写入word里面1.3、对上面生成的word和excel进行压缩1.4 下载zip文件2、前端代码开发2.1、前端 Axios 配置2.2、 AP…

mysql字符编码利用技巧(三字节和四字节)

目录 一、研究代码 1.1 总结&#xff1a; 二、第二个问题 2.1解答 三、第三个问题 3.1解答 一、研究代码 <?php $mysqli new mysqli("localhost", "root", "abc123", "cat");/* check connection */ if ($mysqli->conne…

Figure 02 机器人发布:未来AI的巅峰还是泡沫中的救命稻草?

引言 近日&#xff0c;Figure AI 公司发布了其最新的机器人产品 Figure 02&#xff0c;引发了广泛关注。作为 Figure AI 的第二代人形机器人&#xff0c;Figure 02 的推出引发了关于它是否是“地表最强”机器人的讨论。同时&#xff0c;由于 OpenAI 的技术支持&#xff0c;这款…

数据结构--第七天

递归 -递归的概念 递归其实就是一种解决问题的办法&#xff0c;在C语言中&#xff1a;递归就是函数自己调用自己 -递归的思想 递归的思考方式就是把大事化小的过程 递归的递就是递推的意思&#xff0c;归就是回归的意思 &#xff08;递归是少量的代码完成大量的运算&#xff09…

【Windows】还原Win11记事本定位,禁用多标签,每次使用新窗口打开(安心做好最简单的记事本)

问题 每次打开都是新的标签页&#xff0c;一个文件如果在近期打开多次&#xff0c;晕了&#xff0c;到底哪个才是最新版&#xff1f;&#xff1f;&#xff1f; 解决办法 打开记事本设置 设置为在新窗口打开链接。

异步编程(Promise详解)

目录 异步编程 回调函数 回调地狱 Promise 基本概念 Promise的特点 1.Promise是一种构造函数 2.Promise接收函数创建实例 3.Promise对象有三种状态 4.Promise状态转变不可逆 5.Promise 实例创建即执行 6.Promise可注册处理函数 7.Promise支持链式调用 Promise的静…