C语言程序设计-6 循环控制

news2024/11/22 23:29:25

C语言程序设计-6 循环控制

循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某程序
段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。C语
言提供了多种循环语句,可以组成各种不同形式的循环结构。
1) 用 goto 语句和 if 语句构成循环;
2) 用 while 语句;
3) 用 do-while 语句;
4) 用 for 语句;

6.2 goto 语句以及用 goto 语句构成循环

【例 6.1】用goto语句和if语句构成循环在这里插入图片描述

6.3 while 语句

main()
{
    int i, sum = 0;
    i = 1;
    while (i <= 100)
    {
        sum = sum + i;
        i++;
    }
    printf("%d\n", sum);
}

【例 6.3】统计从键盘输入一行字符的个数。

main()
{
    int n = 0;
    printf("input a string:\n");
    while (getchar() != '\n')
        n++;
    printf("%d", n);
}

【例 6.4】

main()
{
    int a = 0, n;
    printf("\n input n: ");
    scanf("%d", &n);
    while (n--)
        printf("%d ", a++ * 2);
}

6.4 do-while 语句

在这里插入图片描述

main()
{
    int i, sum = 0;
    i = 1;
    do
    {
        sum = sum + i;
        i++;
    } while (i <= 100)
        printf("%d\n", sum);
}

【例 6.6】while 和 do-while 循环比较。

main()
{
    int sum = 0, i;
    scanf("% d", &i);
    while (i <= 10)
    {
        sum = sum + i;
        i++;
    }
    printf("sum = % d", sum);
}

main()
{
    int sum = 0, i;
    scanf("% d", &i);
    do
    {
        sum = sum + i;
        i++;
    } while (i <= 10);
    printf("sum = % d", sum);
}

6.5 for 语句

6.6 循环的嵌套

main()
{
    int i, j, k;
    printf("i j k\n");
    for (i = 0; i < 2; i++)
        for (j = 0; j < 2; j++)
            for (k = 0; k < 2; k++)
 printf("%d %d %d\n", i, j, k); 
}

6.7 几种循环的比较

6.8 break 和 continue 语句

【例 6.8】

main() 
{ 
    int i = 0;
    char c;
    while (1) /*设置循环*/
    {
        c = '\0';                  /*变量赋初值*/
        while (c != 13 && c != 27) /*键盘接收字符直到按回车或 Esc 键*/
        {
            c = getch();
            printf("%c\n", c);
        }
        if (c == 27)
            break; /*判断若按 Esc 键则退出循环*/
        i++;
        printf("The No. is %d\n", i);
    }
    printf("The end");
 }

6.8.2 continue 语句

main()
{
    char c;
    while (c != 13) /*不是回车符则循环*/
    {
        c = getch();
        if (c == 0X1B)
            continue; /*若按 Esc 键不输出便进行下次循环*/
        printf("%c\n", c);
    }
}

6.9 程序举例

#include <math.h>
main()
{
    int s;
    float n, t, pi;
    t = 1, pi = 0;
    n = 1.0;
    s = 1;
    while (fabs(t) > 1e-6)
    {
        pi = pi + t;
        n = n + 2;
        s = -s;
        t = s / n;
    }
    pi = pi * 4;
    printf("pi=%10.6f\n", pi);
}

【例 6.11】判断 m 是否素数。

#include <math.h>
main()
{
    int m, i, k;
    scanf("% d", &m);
    k = sqrt(m);
    for (i = 2; i <= k; i++)
        if (m % i == 0)
            break;
    if (i >= k + 1)
        printf("% d is a prime number\n", m);
    else
        printf("% d is not a prime number\n", m);
}

【例 6.12】求 100 至 200 间的全部素数。

#include <math.h>
main()
{
    int m, i, k, n = 0;
    for (m = 101; m <= 200; m = m + 2)
    {
        k = sqrt(m);
        for (i = 2; i <= k; i++)
            if (m % i == 0)
                break;
        if (i >= k + 1)
        {
            printf("% d", m);
            n = n + 1;
        }
        if (n % n == 0)
            printf("\n");
    }
    printf("\n");
}

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

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

相关文章

【Python/Pytorch - 网络模型】-- TV Loss损失函数

文章目录 文章目录 00 写在前面01 基于Pytorch版本的TV Loss代码02 论文下载 00 写在前面 在医学图像重建过程中&#xff0c;经常在代价方程中加入TV 正则项&#xff0c;该正则项作为去噪项&#xff0c;对于重建可以起到很大帮助作用。但是对于一些纹理细节要求较高的任务&am…

Go源码--sync库(3):sync.Pool(2)

回收 回收其实就是将 pool.local 置为空 可以让垃圾回收器回收 我们来看下 源码 func init() {// 将 poolCleanup 注册到 gc开始前的准备工作处理器中在 STW时执行runtime_registerPoolCleanup(poolCleanup) }这里注册了清理程序到GC前准备工作 也就是发生GC前需要执行这段代…

百递云·API开放平台「智能地址解析API」助力地址录入标准化

地址信息的正确录入&#xff0c;是保证后续物流配送环节能够顺畅运行的必备前提&#xff0c;错误、不规范的收寄地址将会产生许多困扰甚至造成损失。 ✦地址信息通常包含国家、省、城市、街道、楼宇、门牌号等多个部分&#xff0c;较为复杂&#xff0c;填写时稍有疏忽就会出现…

2024年黑龙江省特岗招聘公告出了!!!

2024年黑龙江省农村义务教育阶段学校特设岗位教师招聘822人公告 (1、网上报名 时间&#xff1a;6月17日9&#xff1a;00—6月22日17&#xff1a;00。 网址&#xff1a; https&#xff1a;//sfyz.hljea.org.cn&#xff1a;7006/tgjs 2、网上资格审查 资格审查时间&#xff1a;6月…

GoldWave 6.80软件最新版下载【安装详细图文教程】

​简介 GoldWave是一款易上手的专业级数字音频编辑软件&#xff0c;从最简单的录制和编辑到最复杂的音频处理&#xff0c;恢复&#xff0c;增强和转换&#xff0c;它可以完成所有工作。包括WAV、OGG、VOC、 IFF、AIFF、 AIFC、AU、SND、MP3、 MAT、 DWD、 SMP、 VOX、SDS、AV…

vue 2.0

自定义vue标签指令&#xff1a; <!DOCTYPE html> <html lang"en"> <script src"vue.js"></script> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <div id…

反向迭代器的实现

对于带有迭代器的容器&#xff0c;有正向迭代器&#xff0c;也有反向迭代器&#xff0c;而正向迭代器和反向迭代器比较相似&#xff0c;所以我们可以写一个反向迭代器的模板&#xff0c;给编译器&#xff0c;从传不同的容器的正向迭代器&#xff0c;实例化出对应的反向迭代器&a…

解决 Vue-Element-admin 后台请求Uncaught (in promise) Object

文章目录 问题描述原因分析解决方案 问题描述 前端Vue-Element-admin与SpringBoot后端对接login接口后&#xff0c;后端login接口正常响应&#xff0c;但在前台无法登入系统&#xff0c;浏览器控制台报了 Uncaught (in promise) Object 错误。 报错详情如下所示&#xff1a;…

项目经理,请勇敢Say No~

为什么要say no&#xff1f; 培养say no的勇气 优雅的say no&#xff01; say no 三部曲&#xff0c;项目经理&#xff0c;你准备好了吗&#xff1f; 为什么要say no&#xff1f; 保护项目完整性的屏障 项目管理的核心在于平衡时间、成本与质量三大要素&#xff0c;任何一项的…

Linux常用操作大全(下)

往期文章&#xff1a;Linux常用操作大全&#xff08;上&#xff09; 文章目录 七、网络传输1.下载和网络请求ping命令wget命令curl命令 2.端口概念查询端口状态:nmap,netstat 八、进程管理1.进程的概念**2.PS查看进程**3.杀死进程kill 九、主机状态1.任务管理器top命令2.磁盘信…

微信小程序毕业设计-博客系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

【CT】LeetCode手撕—121. 买卖股票的最佳时机

目录 题目1- 思路2- 实现⭐121. 买卖股票的最佳时机——题解思路 2- ACM实现 题目 原题连接&#xff1a;121. 买卖股票的最佳时机 1- 思路 模式识别 模式1&#xff1a;只能某一天买入 ——> 买卖一次 ——> dp 一次的最大利润 动规五部曲 1.定义dp数组&#xff0c;确…

keystone认证服务

keystone认证服务 1、keystone管理用户 1-1、简介&#xff1a; 在OpenStack云计算平台中&#xff0c;Keystone是一个核心组件&#xff0c;主要用于提供统一的认证服务。其功能包括&#xff1a; 身份验证&#xff1a;Keystone负责验证用户的身份&#xff0c;通常通过用户名和…

Qt第三方库QHotKey设置小键盘数字快捷键

一、看了一圈没有找到可以设置小键盘的情况。 这两天在研究快捷键的使用。发现qt的里的快捷键不是全局的。找了两个第三方快捷键QHotKey&#xff0c;还有一个QxtGlobalShortcut。但是这两个都不能设置小键盘的数字。 比如QKeySequenceEdit &#xff08;Ctrl1&#xff09; 这个…

java第二十四课 —— super 关键字 | 方法重写

super 关键字 基本介绍 super 代表父类的引用&#xff0c;用于访问父类的属性、方法、构造器。 基本语法 访问父类的属性&#xff0c;但不能访问父类的 private 属性。 super.属性名; 访问父类的方法&#xff0c;不能访问父类的 private 方法。 super.方法名(参数列表); 访…

每天五分钟深度学习框架pytorch:多维tensor向量在某一维度的拼接和分割

本文重点 在深度学习中,我们常常需要完成多个向量拼接,同时也要完成向量的分割,在pytorch中已经有封装好的库,我们可以直接调用完成这部分任务。 Cat拼接 c=torch.cat([a,b],dim=0)表示将a和b按0维度进行拼接,需要注意再非dim维度,两个矩阵的维度必须是一致的,不然会拼…

01 飞行器设计 —— 一门独立的学科

01 飞行器设计 —— 一门独立的学科 01 引言02 飞机设计概述2-1 什么是飞机设计&#xff1f;2-1 飞机设计是从哪里开始的&#xff1f;2-2 如何成为一名飞机设计师&#xff1f;2-4 本书的组织 参考文献 说明&#xff1a;关于Raymer的《Aircraft Design》的读书笔记&#xff1b; …

【数字化转型,从BI开始】论BI在数字化转型的作用

引言&#xff1a;在新的市场和用户需求、传统经济增长缓慢、疫情黑天鹅事件等多重因素的影响下&#xff0c;企业遭遇了集体性的困境&#xff0c;而数字化转型就是各领域企业寻找出的应对方式。数字化转型包含的三维度之一数据力&#xff0c;就包含数据治理和数据分析&#xff0…

第 4 章:从 Spring Framework 到 Spring Boot

通过前面几个章节的介绍&#xff0c;相信大家已经对 Spring Framework 有了一个基本的认识&#xff0c;相比早期那些没有 Spring Framework 加持的项目而言&#xff0c;它让生产力产生了质的飞跃。但人们的追求是无止境的&#xff0c;这也驱动着技术的发展。开发者认为 Spring …

浅谈配置元件之Java默认请求

浅谈配置元件之Java默认请求 1.简介 “Java默认请求”&#xff08;虽然直接名为"Java Request"更常见&#xff09;是一个高级配置元件&#xff0c;它允许用户通过Java代码自定义请求逻辑&#xff0c;为测试提供了极高的灵活性和扩展性。 2.Java请求组件概述 在JM…