首页 > 其他分享 >循环结构#for语句以及穷举法#感悟

循环结构#for语句以及穷举法#感悟

时间:2024-10-01 22:47:37浏览次数:7  
标签:感悟 语句 穷举法 int 质数 循环 include 表达式

##for循环语句:
for(表达式1;表达式2;表达式3)
循环体语句;

表达式1是初始值(先执行)
表达式2是循环条件(决定是否继续执行)(再执行)
循环体语句(接着执行)
表达式3是改变循环条件(最后执行)

说人话就是3改变1的初始值,使其不符合循坏条件,结束循环。(其实循环结构都是由真到假的过程)

for语句的穷举法
for语句我一般解读为:为了表达式2而不断执行
但是for后面接for似乎不能这样解读了(个人感觉)
多接触一下这样的例子,我觉得应该理解为:在…情况下

a b c d分别表示甲乙丙丁
甲说:乙没偷丁偷的,或乙偷了丁没偷
乙说:乙没偷丙偷的,或乙偷了丙没偷
丙说:甲没偷乙偷的,或甲偷了乙没偷
丁说:丁没偷,或丁偷了
请判断谁是小偷

可以令偷的人为1,没偷的为0,满足以上所有条件
其四人要么偷了,要么没偷,可以用穷举法(for for型)

  #include <stdio.h>
  #include <stdlib.h>
 
  int main()
 {
    int a,b,c,d;
    for(a=0;a<=1;a++)
    for(b=0;b<=1;b++)
    for(c=0;c<=1;c++)
    for(d=0;d<=1;d++)
       if((a+b+c+d==1)&&((b==0&&d==1)||(b==1&&d==0))&&((b==0&&c==1)||(b==1&&c==0))&&((a==0&&b==1)||(a==1&&b==0))&&(d==1||d==0))
       if(a==1) printf("甲");
         else if(b==1) printf("乙");
         else if(c==1) printf("丙");
         else if(d==1) printf("丁");
    return 0;
 }

小结:
=与==总搞混,前者是赋值,后者是等于,老是把=当做C语言中的等于
写代码时(codeblocks)遇到中文字出现了乱码的现象,自己找了下别人的解决方法,也记录一下:
Setting——Editor——Encoding Settings——As default encoding 就OK了

求质数

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int m,i;
    scanf("%d",&m);
    int flag=1;
    for(i=2;i<=m-1;i++)
        if(m%i==0)
    {
        flag=0;
        break;
    }
    if(flag) printf("%d是质数",m);
    else printf("%d不是质数",m);
    return 0;
}

小结:
还是那句话,分清==和=,上面的程序用0和1代表了是不是质数,如果能被2——m-1的数整除,那么判断该数是0,并且退出循环!
如果问题为:是不是…,那么可以用0和1去代替
千万别像我下面写的错误示例

 int m,i;                                 
    scanf("%d",&m);
    int flag=1;
    for(i=2;i<=m-1;i++)
        if(m%i==0)
        printf("%d不是质数\n",m);
        else
        printf("%d是质数\n",m);

这个就是理解成了在2到m-1的情况下,会…,却忽略了for语句的循环性,最后结果就是

6
6不是质数
6不是质数
6是质数
6是质数

真是头大了

九九乘法表
因为要控制行数以及每行的个数,所以要用两个变量控制内循环(每行个数)和外循环(行数)

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j;
    for(i=1;i<=9;i++)
    {
        for (j=1;j<=i;j++)
        printf("%d*%d=%d\t",j,i,j*i);
        printf("\n");
    }
    return 0;
}

小结:
先让每行的值(内循环)执行完,再进行下一行(外循环)
每次内循环结束,进行下一次循环时,内循环继续使用初始值

最后再来个鸡兔同笼(穷举法)
35个头,94只脚

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int c,r;
    for(c=0;c<=35;c++)
    for(r=0;r<=35;r++)
      if (c+r==35&&c*2+r*4==94)
            printf("鸡%d,兔%d",c,r);

    return 0;
}

明显的for for型,现在就容易理解多了

OK,以上为个人自学摸索的经验,不喜勿喷,就这样,把个人认为棘手的内容记录了,下次再见!

标签:感悟,语句,穷举法,int,质数,循环,include,表达式
From: https://blog.csdn.net/Superachieve/article/details/142657522

相关文章

  • SQLServer常用近百条SQL语句(收藏版)
    1.sqlserver查看实例级别的信息,使用SERVERPROPERTY函数selectSERVERPROPERTY('propertyname')2.查看实例级别的某个参数XX的配置select*fromsys.configurationswherename='XX'3.更改实例级别的某个参数XX的值sp_configure'XX','0'RECONFIGUREWITHOVERRIDE......
  • 【深入浅出MySQL】「性能调优」高性能查询优化MySQL的SQL语句编写
    总体优化大纲(1)优化查询性能:通过索引降低全表扫描频率提升数据库查询性能的途径时,一个关键的战略就是降低全表扫描的频次。因为全表扫描往往会消耗显著的计算资源,从而导致查询过程变得迟缓且效率低下,为了有效地提高查询的响应速度和整体性能。优化方向那些在where筛选条件和orderby......
  • DRF请求的生命周期:三年程序员的实战感悟
    前言:作为工作一个3年左右的码农,在各种框架的摸爬滚打中,我也接触了不少前端后端的技术栈,其中DjangoRESTFramework(DRF)算是我后端日常工作中的用得最多的框架。今天就简单聊聊DRF请求的生命周期。从请求的发起,到数据的处理,再到最终的响应返回,每一步都有着很多的细节和挑战,由于篇幅......
  • pbootcms常用的13个IF判断语句大全汇总
    PBootCMS提供了丰富的模板标签和条件判断功能,帮助开发者实现各种动态效果。以下是常用的13个IF判断语句及其具体应用示例。1.导航高亮用途: 用于非首页的导航高亮。语法:html {pboot:if('[nav:scode]'=='{sort:tcode}')}class="active"{/pboot:if}完整示例:htm......
  • mybatis基于注解、XML配置文件的形式来定义SQL语句
    一、mybatis基于注解定义SQL语句员工类@Data@NoArgsConstructor//无参@AllArgsConstructor//有参publicclassEmp{privateIntegerid;//idprivateStringusername;//用户名privateStringpassword;//密码privateStringname;//姓名privat......
  • GaussDB数据库SQL系列-动态语句
    一、前言在数据库中构建动态SQL语句是指根据不同的条件或参数创建不同的SQL语句。这通常是为了适应不同的业务需求,提高SQL的灵活性和效率。GaussDB数据库是一款具备高性能、高可用性和高扩展性的关系型数据库,它提供了丰富的功能和工具,支持动态SQL语句的构建。下面我们将介绍如何......
  • GaussDB SQL基础语法示例-GOTO语句
    一、前言SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准(默认支持SQL2、SQL3和SQL4的主要特性)。本系列将以《云数据库GaussDB—SQL参考》在线文档为主线进行介绍。GOTO语句是直观基本的控制流语句,会导致控制流发生无条件更改。它用于分流至使用SQL过程中定......
  • PBootCMS如何修改页面中的提示语句?
    在PBootCMS中,你可以通过模板标签 {pboot:position} 来自定义页面中的面包屑提示文字。具体来说,你可以修改首页文本以及其他相关参数。以下是详细的步骤和示例:修改面包屑提示文字示例代码{pboot:positionindextext='Home'}或者{pboot:positionindextext='"Págin......
  • 【大数据入门 | Hive】hiveSQL常用语句
    1.数据准备①在/opt/module/hive/datas/路径上创建dept.txt文件,并赋值如下内容:部门编号部门名称部门位置id[atguigu@hadoop102datas]$vimdept.txt10 行政部 170020 财务部 180030 教学部 190040 销售部 1700②在/opt/module/hive/datas/路径上创建emp.txt文件,并......
  • JavaScript 条件循环语句
    ‌条件循环语句‌是编程中的一种控制结构,它允许程序根据特定条件重复执行一段代码,直到满足某个条件为止。这种结构通常包括条件语句和循环语句,它们共同作用,使得程序能够根据预设的条件来决定是否继续执行循环体中的代码。for循环:适用场景:当知道循环次数时(循环次数已知)。特......