C语言—for循环(1)

news2025/1/19 20:40:43

 for 语句在语法格式上,降低了提供循环结构时,遗忘循环三要素的几率。

 for语句的应用场景:对循环次数预先可以获知的情况,如果预先无法获知次数时,推荐使用while语句
1.当型循环:(while)  特点: 先判断后执行

 2.直到型循环:(do...while)  特点: 先执行后判断

3.提前结束整个循环 (break语句):1. 结束switch...case 分支2. 结束循环
4.提前结束本次循环进入下一次循环,不结束整个循环 (continue 语句):提前结束本次循环进入下一次循环

大部分我都是基于for循环做的,有少许while.

1、计算n以内所有正奇数的和 ? n值通过键盘输入

有很多方法,我列了2种,看自己的想法,最终实现结果就好。

/*1、计算n以内所有正奇数的和 ? n值通过键盘输入*/

#include <stdio.h>

int main(void)
{
    int n,i,sum = 0;

    printf("请输入一个正整数n:");
    scanf("%d",&n);

    if(n <= 0)
    {
        printf("输入的不是正整数,请重新输入。\n");
        return 1;
    }

   /* for(i = 1;i <= n;i += 2)
    {
        sum += i;
    } */

    for(i = 1;i <= n;i++)
    {
        if(i % 2 != 0)
        {
            sum += i;
        }
    }

    printf("%d以内的所有正奇数的和是:%d\n",n,sum);

    return 0;

}

2、计算 1 + 1/(2 * 3) + 1/(3 * 4) + ...+ 1/(n * (n + 1)) = ?直到最后一项值小于0.00001为至。

/*2、计算 1 + 1/(2 * 3) + 1/(3 * 4) + ...+ 1/(n * (n + 1)) = ?直到最后一项值小于0.00001*/

#include <stdio.h>

int main(void)
{
    float term = 1.0,sum = 1.0;
    int n = 2;

    /* while(term >= 1.0e-5)
    {
        term = 1.0 / (n * (n + 1));
        sum += term;
        n++;
    } */

    for(n = 2;term >= 1.0e-5;n++)  //若值小于1.0e-5循环结束输出值
    {
        term = 1.0 / (n * (n +1));
        sum += term;
    }

    printf("数之和为:%f\n",sum);

    return 0;

3.打印输出所有的水仙花数,水仙花数是指一个 3 位数,它的每个位上的数字的3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)

/*3.打印输出所有的水仙花数,三位数,1^3 + 5^3+ 3^3 = 153)*/

#include <stdio.h>

int main(void)
{
    int num;
    int hunds,tens,ones;

    for(num = 100;num <= 999;num++)
    {
        hunds = num / 100;  //比如100 / 100 = 1拿到百位上的数
        tens = (num % 100) / 10;  //这里要先对100求余,比如71 % 100 = 71,71 / 10拿到十位上数
        ones = num % 10;  //这里要个位对10取余拿到个位上数


        if(num == (hunds * hunds * hunds) + (tens * tens * tens) + (ones * ones * ones))
        {
            printf("水仙花数: %d\n",num);
        }

    }

    return 0;

}

4. 打印乘法表

/*4.打印乘法表*/

#include <stdio.h>

int main(void)
{
    int r,c;

    printf("请输入乘法表的行数:");
    scanf("%d",&r);

    printf("请输入乘法表的列数:");
    scanf("%d",&c);

    if(r <= 0 || c  <= 0)
    {
        printf("输入的不是正整数,请重新输入!\n");
    }

    int i,j;

    for(i =1;i <= r;i++)
    {
        for(j = 1;j <= c;j++)
        {
            printf("%d*%d=%-3d",i,j,i*j);
        }
    printf("\n");
    }

    return 0;
}

5.判断一个数是不是回文数。(回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。)
   例如 12321 是一个回文数。

C语言判断回文数的几种方法。_c语言回文数判断-CSDN博客

这个我不是原创,好像是这么注明原创的,应该是这样弄得吧,我觉得他的逻辑思维好厉害

(只能用来确定整数)
任何一个数除以10的余数就是该数最后一位
任何一个数除以10的商就是排除掉最后一位后的数
新数=新数*10+余数
经过循环后,我们得到新数
如果是回文,那么新数应该等于原数,否则不是回文
假如有一个数字121

第一轮循环:
sum=0*10+121%10=1
temp=121/10=12
第二轮循环
sum=1*10+12%10=12
temp=12/10=1
第三轮循环
sum=12*10+1%10=121
temp=1/10=0
第四轮循环判断
temp=0 退出循环
最后判断 121=121是回文

若有个数字是123
第一轮循环:
sum=0*10+123%10=3
temp=123/10=12
第二轮循环:
sum=3*10+12%10=32
temp=12/10=1
第三轮循环:
sum=32*10+1%10=321
temp=1/10=0
第四轮循环判断
temp=0退出循环
321!=123不是回文
/*5.判断一个数是不是回文数。例如 12321 是一个回文数。*/

#include <stdio.h>

int main(void)
{
    int num,temp,sum = 0; //定义变量num,temp,sum;sum用于存储反转后的数

    printf("请输入一个正整数:");
    scanf("%d",&num);

    temp = num;   //将用户输入的整数赋值给临时变量temp

    while(temp > 0)
    {
        sum = sum * 10 + temp % 10;  //将temp对10取余的结果加到sum上,并*10,实现反转
        temp = temp / 10;  //去掉temp的最低位数字
    }

    if(sum == num)  //如果反转后的数 sum 等于原数num,则说明num是回文数
    {
        printf("%d是一个回文数\n",num);
    }

    else
    {
        printf("%d不是一个回文数:\n",num);
    }

    return 0;

}

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

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

相关文章

Windows 安装和连接使用 PgSql数据库

一. PostgreSQL 安装详细步骤 下载地址&#xff1a;https://www.enterprisedb.com/postgresql-tutorial-resources-training-1?uuidd732dc13-c15a-484b-b783-307823940a11&campaignIdProduct_Trial_PostgreSQL_16 1. 双击打开安装包 2. 选择安装目录 3. 选择安装组件 4.…

[Flask]SSTI1 buuctf

声明&#xff1a;本篇文章csdn要我一天发两篇所以我来水的 跟ssti注入的详细知识我这里写了 https://blog.csdn.net/weixin_74790320/article/details/136154130 上面链接我复现了vulhub的SSTI&#xff0c;其实本质上是一道题 然后我们就用{{.__class__}}看类的类型&#xf…

java+vue_springboot企业设备安全信息系统14jbc

企业防爆安全信息系统采用B/S架构&#xff0c;数据库是MySQL。网站的搭建与开发采用了先进的java进行编写&#xff0c;使用了vue框架。该系统从三个对象&#xff1a;由管理员、人员和企业来对系统进行设计构建。主要功能包括&#xff1a;个人信息修改&#xff0c;对人员管理&am…

HBuilderX 插件开发指南(一):从插件开发到发布的完整流程

前端目前主流使用的IDE工具有VS Code、Sublime Text3、HBuilder X等等 本期我们主要了解HBuilder X&#xff0c;作为前端通用型开发工具&#xff0c;拥有可视化的操作方式&#xff0c;内置相关环境&#xff0c;开箱即用&#xff0c;无需配置nodejs等优点外&#xff0c;对uni-a…

Open CASCADE学习|用点分割边

在Open CASCADE Technology&#xff08;OCCT&#xff09;中&#xff0c;几何模型是由拓扑&#xff08;Topology&#xff09;和几何&#xff08;Geometry&#xff09;两部分组成的。拓扑部分描述了形状的拓扑结构&#xff0c;比如边、面、体等&#xff0c;而几何部分则定义了这些…

快速排序(2)——快速排序的优化

因为Hoare的快速排序写起来容易出错&#xff0c;并且有很多地方不太合适&#xff0c;于是&#xff0c;就有了一下几种优化。 基准值的优化 如果我们一直选取一组数据的第一个数据为基准值&#xff0c;如果遇到重复少的值的化&#xff0c;没什么问题。但是如果重复的值比较多的…

对称密钥的分配、公钥的分配

目录 密钥分配 1 对称密钥的分配 KDC 对会话密钥 KAB 的分配 对称密钥分配协议&#xff1a;Kerberos 2 公钥的分配 认证中心 CA (Certification Authority) 数字证书 (digital certificate) 已签名的 B 的数字证书的产生过程 X.509 数字证书 认证系统 证书链 证书…

2024.2.18 C++QT 作业

思维导图 练习题 1>定义一个基类 Animal&#xff0c;其中有一个虛函数perform&#xff08;)&#xff0c;用于在子类中实现不同的表演行为。 #include <iostream>using namespace std;class Animal { public:virtual void perform() {cout << "这是一个动…

红队攻防之office文件钓鱼制作ppt钓鱼

为众人抱薪者&#xff0c;不可使其冻毙于风雪&#xff1b;为自由开路者&#xff0c;不可使其困顿于荆棘。 PPT手势触发 这种攻击则利用的是鼠标轨迹来进行操作&#xff0c;比如鼠标点击、鼠标移动等。 首先&#xff0c;创建一个普通的PPTX文件&#xff0c;随便填入一些内容&…

《白话C++》第10章 STL和boost,Page74 10.4.4 std::unique_ptr

std::unique_ptr可以同时处理普通指针和指向数组的指针&#xff1a; unique_ptr像是auto_ptr的功能改良版 第一个改进就是可以管理指向单一对象的指针&#xff0c;也可以管理指向连续对象&#xff08;数组&#xff09;的指针。 第二个&#xff0c;unique_ptr改进的是&#xf…

huggingface入门玩耍LLM Starter

huggingface入门玩耍LLM Starter huggingface-cli 下载model 下载 本人macos系统&#xff0c;以下可参考 huggingface-cli 下载 brew install huggingface-climodel 下载 以 chatglm-6b 为例 huggingface-cli download --token hf_*** --resume-download THUDM/chatglm-6b-i…

C/C++ BM7 链表中环的入口结点

文章目录 前言题目解决方案一1.1 思路阐述1.2 源码 解决方案二2.1 思路阐述2.2 源码 总结 前言 BM6里面使用了双指针法和哈希的方式来查找环&#xff0c;BM7相对于BM6只多了一个查找第一个重复地址的过程。个人认为是用哈希是最简单&#xff0c;C11标准的set或者map。 题目 给…

洛谷 P1150 Peter 的烟

参考代码and代码解读 #include<iostream> using namespace std; int main() { int n,k,nonu; //n烟的数量&#xff0c;k需要多少根烟头换一支烟&#xff0c;nonu记录烟头的个数 cin>>n>>k; int sumn; //一开始就能吸n支烟 nonusum; …

C++友元->全局函数做友元、类做友元、成员函数做友元

全局函数做友元代码&#xff1a; #include<iostream> using namespace std; #include<string> //建筑物类 class Building { //告诉编译器 goodGay全局函数 是 Building类的好朋友&#xff0c;可以访问类中的私有内容 friend void goodGay(Building * bu…

linux kernel 内存踩踏之KASAN_HW_TAGS(MTE)(三)

一、背景 linux kernel 内存踩踏之KASAN&#xff08;一&#xff09;_kasan版本跟hasan版本区别-CSDN博客 linux kernel 内存踩踏之KASAN_SW_TAGS&#xff08;二&#xff09;-CSDN博客 最后来介绍一下KASAN_HW_TAGS&#xff0c;ARM64上就是MTE&#xff0c;这个特性在ARMv8.5支…

python in Vscode

背景 对于后端的语言选择&#xff1a; python&#xff0c;java&#xff0c;JavaScript备选。 选择Python 原因&#xff1a;可能是非IT专业的人中&#xff0c;会Python的人比较多。 目的 之前使用的IDE是VSCODE&#xff0c;在WSL的环境下使用。现在需要在在WSL的VSCODE下使…

分享几个丝滑oled代码

最近一段业余时间在捣鼓esp32&#xff0c;发现对于一个搞diy的来说&#xff0c;它的生态&#xff0c;不管是开发环境、氛围还是可玩度都是独一挡的&#xff0c;国内外基于此的扩展真是太多了&#xff0c;找了几个通过按键/旋钮进行0.96寸OLED控制的案例&#xff0c;超级丝滑&am…

【论文解读】Latency-Aware Collaborative Perception

Latency-Aware Collaborative Perception 摘要引言方法SystemSyncNet 实验 摘要 协作感知最近显示出提高单智能体感知感知能力的巨大潜力。现有的协同感知方法通常考虑理想的通信环境。然而&#xff0c;在实践中&#xff0c;通信系统不可避免地存在延迟问题&#xff0c;导致安…

2月16日openai又出了什么大招呢?

2024年2月16日通过google trends可以发现“sora”被大量的搜索与关注。那么什么是“sora”呢&#xff1f; Sora是OpenAI发布的一款文本到视频的AI模型&#xff0c;它能够根据文本指令生成逼真和富有想象力的场景。Sora 可以创建长达 60 秒的视频&#xff0c;其中包含高度详细的…

后端扫盲系列 - vue入门指南

vue特点 组件化&#xff1a;用户界面分解为可重用的组件&#xff0c;这些组件可以使开发的页面更加模块化和可维护双向数据绑定&#xff1a;vue提供了一种轻松绑定数据和DOM元素之间的机制&#xff0c;意味着数据发送变化时&#xff0c;视图会自动更新&#xff0c;反之亦然虚拟…