【C语言程序设计】循环结构程序设计

news2024/12/27 13:32:25

目录

前言

一、程序设计第一题

二、程序设计第二题

三、程序设计第三题

总结


🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。

💡本文由Filotimo__✍️原创,首发于CSDN📚。

📣如需转载,请事先与我联系以获得授权⚠️。

🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!

🌟我的格言:森林草木都有自己认为对的角度🌟。

前言

1. 循环结构是程序设计中的重要概念,它允许我们重复执行一段代码多次,从而实现一些重复性的任务。

2. 在C语言中,循环结构有三种主要形式:for循环、while循环和do-while循环。

(1) for循环适用于循环次数已知的场景,通过控制循环变量的初始值、循环条件和每次循环后的操作来控制循环过程。
(2)while循环适用于循环次数不确定的情况,它在循环开始前先判断循环条件,如果条件满足,则执行循环体内的代码,否则跳出循环。
(3)do-while循环与while循环类似,不同之处在于它会先执行一次循环体内的代码,然后再判断循环条件是否满足,如果满足则继续执行,否则跳出循环。

3. 在循环中,我们可以使用控制流程语句来改变循环执行的顺序,比如`break`语句可以用于提前结束循环,`continue`语句可以用于跳过当前循环的剩余代码并进入下一次循环。

4. 循环结构的正确使用可以大大简化程序的代码量,提高程序的效率和可读性。但需要注意避免陷入无限循环的情况,确保循环条件可以正确终止循环。


一、程序设计第一题

 输出100以内能被3或5整除的数。

用while语句实现:

#include <stdio.h>

int main() {
    int i = 1;

    printf("能被3或5整除的数有: ");

    while(i <= 100) {
        if(i % 3 == 0 || i % 5 == 0) {
            printf("%d ", i);
        }
        i++;
    }

    return 0;
}

用do…while语句实现:

#include <stdio.h>

int main() {
    int i = 1;

    printf("能被3或5整除的数有: ");

    do {
        if(i % 3 == 0 || i % 5 == 0) {
            printf("%d ", i);
        }
        i++;
    } while(i <= 100);

    return 0;
}

用for语句实现:

#include <stdio.h>

int main() {
    int i;

    printf("能被3或5整除的数有: ");

    for (i = 1; i <= 100; i++) {
        if (i % 3 == 0 || i % 5 == 0) {
            printf("%d ", i);
        }
    }

    return 0;
}

运行结果:

二、程序设计第二题

输出下列的前20项1,2,5,10,21,42,85,170,341,682,…

用while语句实现:

#include <stdio.h>

int main() {
    int a = 0, b = 0;

    while (a <= 19) {
        a = a + 1;
        if (a % 2 != 0)
            b = 2 * b + 1;
        else
            b = 2 * b;
        printf("%d\n", b);
    }

    return 0;
}

程序中使用了两个变量ab,其中a代表项数,b代表数列中每一项的值。在每次循环中,首先将a自增1,然后通过判断a是否为奇数来选择相应的计算公式。如果a是奇数,则使用b = 2 * b + 1计算新的 b 的值;如果a是偶数,则使用b = 2 * b 计算新的 b 的值。每次循环都输出当前的 b 的值。

用do…while语句实现:

#include <stdio.h>

int main() {
    int a = 0, b = 0;
    int count = 0;

    do {
        count++;
        if (count % 2 != 0)
            b = 2 * b + 1;
        else
            b = 2 * b;
        printf("%d\n", b);
    } while (count <= 19);

    return 0;
}

用for语句实现:

#include <stdio.h>

int main() {
    int b = 0;

    for (int a = 1; a <= 20; a++) {
        if (a % 2 != 0)
            b = 2 * b + 1;
        else
            b = 2 * b;
        printf("%d\n", b);
    }

    return 0;
}

运行结果:

三、程序设计第三题

每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的2倍,直至购买的苹果个数达到不超过100的最大值。编写程序求总共要花多少钱?

用while语句实现:

#include <stdio.h>

int main()
{
    double price = 0.8;
    int total = 0;
    int count = 2;
    int i = 1;

    while (count <= 100)
    {
        total += count;
        count *= 2;
        i++;
    }

    printf("总共需要花费 %.2f 元\n", total * price);

    return 0;
}

用do…while语句实现:

#include <stdio.h>

int main()
{
    double price = 0.8;
    int total = 0;
    int count = 2;
    int i = 1;

    do
    {
        total += count;
        count *= 2;
        i++;
    } while (count <= 100);

    printf("总共需要花费 %.2f 元\n", total * price);

    return 0;
}

用for语句实现:

#include <stdio.h>

int main()
{
    double price = 0.8;
    int total = 0;
    int count = 2;
    int i;

    for (i = 1; count <= 100; i++)
    {
        total += count;
        count *= 2;
    }

    printf("总共需要花费 %.2f 元\n", total * price);

    return 0;
}

运行结果:


总结

循环结构的三种控制语句:
1.while语句:在指定条件为真时重复执行语句块。先判断条件是否为真,如果为真,则执行循环中的语句块,然后再次判断条件,以此类推。如果条件为假,则跳过循环。适用于不确定循环次数的情况。

2.do…while语句:在条件判断之前先执行一次循环语句块,然后再根据条件来决定是否继续执行循环。先执行一次循环体,然后判断条件是否为真,如果为真,则继续执行循环,否则退出循环。适用于至少要循环一次的情况。

3.for语句:通过初始化表达式、循环条件、循环控制表达式和语句块组成。先执行初始化表达式,然后判断循环条件是否为真,如果为真,则执行循环体内的语句块,再执行循环控制表达式,以此类推。适用于循环次数已知的情况。

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

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

相关文章

1.函数递归起(复习)

1.debug版本可以调试,realse版本不能调试 2.在realse版本中,代码已经得到了优化(编译器可能会自作主张地对代码进行优化),在大小和速度上都是最优的 3.ctrl F5 是开始执行不调试 4.设置好断点后,用F5到达该断点,相当于是到达了该断点的那个位置程序就先停止运行了 5.设立断…

Linux shell编程学习笔记35:seq

0 前言 在使用 for 循环语句时&#xff0c;我们经常使用到序列。比如&#xff1a; for i in 1 2 3 4 5 6 7 8 9 10; do echo "$i * 2 $(expr $i \* 2)"; done 其中的 1 2 3 4 5 6 7 8 9 10;就是一个整数序列 。 为了方便我们使用数字序列&#xff0c;Linux提供了…

UDS DTC状态掩码/DTC状态位

文章目录 简介用途依赖知识1、测试&#xff08;test&#xff09;2、操作循环&#xff08;operation cycle&#xff09;3、老化&#xff08;aging&#xff09; DTC状态位1、Bit 0&#xff1a;Test Failed2、Bit 1&#xff1a;Test Failed This operation cycle3、Bit 2&#xff…

【大数据】Hadoop生态未来发展的一些看法

大数据的起源 谷歌在2003到2006年间发表了三篇论文&#xff0c;《MapReduce: Simplified Data Processing on Large Clusters》&#xff0c;《Bigtable: A Distributed Storage System for Structured Data》和《The Google File System》介绍了Google如何对大规模数据进行存储…

基于51单片机的语音识别控制系统

0-演示视频 1-功能说明 &#xff08;1&#xff09;使用DHT11检测温湿度&#xff0c;然后用LCD12864显示&#xff0c;语音播放&#xff0c;使用STC11l08xe控制LD3320做语音识别&#xff0c; &#xff08;2&#xff09;上电时语音提示&#xff1a;欢迎使用声音识别系统&#xf…

数据结构篇-顺序表及单项链表

目录 一、学习目标 二、顺序表 1. 线性表 1.1 概念 1.2 举例 2. 顺序表 2.1 基本概念 2.2 基本操作 2.3 顺序表优缺点总结 三、单项链表 1. 基本概念 2. 链表的分类 无头节点&#xff1a; 有头节点&#xff1a; 增添加节点 查找节点 删除节点 链表遍历 销毁链…

【ARM Trace32(劳特巴赫) 使用介绍 13 -- Trace32 断点 Break 命令篇】

文章目录 1. Break.Set1.1 TRACE32 Break1.1.1 Break命令控制CPU的暂停1.2 Break.Set 设置断点1.2.1 Trace32 程序断点1.2.2 读写断点1.2.2.1 变量被改写为特定值触发halt1.2.2.2 设定非值触发halt1.2.2.4 变量被特定函数改写触发halt1.2.3 使用C/C++语法设置断点条件1.2.4 使用…

折点计数 C语言xdoj46

问题描述 给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长&#xff0c;而后一天销售量减少&#xff0c;则称这一天为折点&#xff0c;反过来如果之前销售量减少而后一天销售量增长&#xff0c;也称这一天为折点&#xff0c;其他的天都不是折点。如图…

AI大模型行业2024年上半年投资策略:大模型多模态化趋势显著,AI应用侧加速繁华

今天分享的AI系列深度研究报告&#xff1a;《AI大模型行业2024年上半年投资策略&#xff1a;大模型多模态化趋势显著&#xff0c;AI应用侧加速繁华》。 &#xff08;报告出品方&#xff1a;东莞证券&#xff09; 报告共计&#xff1a;30页 1.传媒行业行情和业绩回顾 1.1行业…

数据可视化:解析跨行业普及之道

数据可视化作为一种强大的工具&#xff0c;在众多行业中得到了广泛的应用&#xff0c;其价值和优势不断被发掘和利用。今天就让我以这些年来可视化设计的经验&#xff0c;讨论一下数据可视化在各个行业中备受青睐的原因吧。 无论是商业、科学、医疗保健、金融还是教育领域&…

spring 笔记一 spring快速入门和配置文件详解

Spring简介 Spring是分层的 Java SE/EE应用full-stack 轻量级开源框架&#xff0c;以 IoC&#xff08;Inverse Of Control&#xff1a;反转控制&#xff09;和AOP&#xff08;Aspect Oriented Programming&#xff1a;面向切面编程&#xff09;为内核。 提供了展现层SpringMV…

如何FL Studio显示中文?切换语言教程

你是不是也在为fl studio的英文界面而苦恼&#xff1f;你是不是也想让你的fl studio 说中文&#xff0c;方便你制作音乐&#xff1f;你是不是也在网上找了很多教程&#xff0c;却发现都是复杂的&#xff0c;或者已经过时的&#xff1f;如果你的答案是肯定的&#xff0c;那么你来…

c++国际象棋有人机qt5.9.9启动chesss

项目简介&#xff1a; 利用C的知识和QT以及一些自行拓展的新知识&#xff0c;实现国际象棋的开发。 使自己更加深层的理解和掌握c并在程序中展现出来&#xff0c;同时开发编程的思想和能力&#xff0c;以及扩展知识面&#xff0c;学习一些课上没有涉及的内容。同时通过阅读一…

应用程序映射的 5 个安全优势

现代企业依靠无数的软件应用程序来执行日常运营。这些应用程序相互连接并协同工作以提供所需的服务。了解这些应用程序如何相互交互以及底层基础设施对于任何组织都至关重要。这就是应用程序映射概念的用武之地。 顾名思义&#xff0c;应用程序映射是创建应用程序架构&#xf…

Java键值对Pair的使用方式和操作流程

Java键值对Pair的使用方式和操作流程 什么是键值对 键值对是一种常见的数据结构&#xff0c;它由一个唯一的键&#xff08;key&#xff09;和与之关联的值&#xff08;value&#xff09;组成。键和值之间存在一种映射关系&#xff0c;通过键可以查找或访问对应的值。 在键值对…

设计模式——原型模式(创建型)

引言 原型模式是一种创建型设计模式&#xff0c; 使你能够复制已有对象&#xff0c; 而又无需使代码依赖它们所属的类。 问题 如果你有一个对象&#xff0c; 并希望生成与其完全相同的一个复制品&#xff0c; 你该如何实现呢&#xff1f; 首先&#xff0c; 你必须新建一个属于…

【vue实战项目】通用管理系统:信息列表,信息的编辑和删除

本文为博主的vue实战小项目系列中的第七篇&#xff0c;很适合后端或者才入门的小伙伴看&#xff0c;一个前端项目从0到1的保姆级教学。前面的内容&#xff1a; 【vue实战项目】通用管理系统&#xff1a;登录页-CSDN博客 【vue实战项目】通用管理系统&#xff1a;封装token操作…

【日积月累】Spring中的AOP与IOC相关问题详解

Spring中的AOP与IOC 1.前言2.Spring AOP&#xff08;面向切面编程&#xff09;2.1 AOP的实现过程2.2 AOP代理模式的类型2.2.1JDK的动态代理2.2.2CGLIB的动态代理 2.3AOP应用常见场景2.3.1日志记录 2.4对AOP的理解 3.Spring IOC&#xff08;Inversion of Control&#xff0c;控…

【JVM从入门到实战】(五)类加载器

一、什么是类加载器 类加载器&#xff08;ClassLoader&#xff09;是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。 类加载器只参与加载过程中的字节码获取并加载到内存这一部分。 二、jdk8及之前的版本 类加载器分为三类&#xff1a; 启动类加载器-加载Ja…

Linux驱动入门 —— LED点灯驱动程序

目录 IMX6ULL 的 GPIO 操作方法 GPIO 操作相关名词 IMX6ULL 的 GPIO 模块结构 GPIO 模块内部 读 GPIO​编辑 写 GPIO​编辑 LED 点灯驱动程序 字符设备驱动程序框架 编写驱动程序的步骤&#xff1a; 先编写驱动程序代码&#xff1a; 再编写测试程序代码&#xff1a;…