zoukankan      html  css  js  c++  java
  • C语言----循环结构2(基础篇六)

    好久么有写博客,近期项目基本完成,日常的学习也需要提上日程,尽管未来么有希望,但还是低着脑袋往前走吧.....不啰嗦进入主题。

      死循环

      ※软死机:CPU占用100%,双核占50%,机器明显变慢。出现软死机其实就是死循环。如while(1);就是个死循环语句,请不要用在歪门邪道处。

      ※硬死机:鼠标、键盘、显示器无响应。

      ※大部分的死循环是忘记改变循环变量的值造成的。

       进化

       程序1

        使用for语句 将1 到 10 输入到屏幕上。

    //for 循环语句,输出在屏幕上 1 - 10
    #include <stdio.h>
    main()
    {
        int i;
        for (i = 1;i<=10;i++)
        {
            printf("%d	",i);
            
        }
        printf("
    ");
    }

      for语句

      格式:

        for(循环变量赋初值;条件表达式;循环变量增值)

        {

          若干语句

          …

        }

      for循环执行流程

        for(①n=0; ②⑤n<100; ④⑦n++)      //循环的运行步骤是按照上流程里面的数字依次进行的

        {  

          ③⑥循环体

        }

        相当于

        n=0;

        while(n<100)

        {  

          循环体

          n++;

        }

      continuebreak语句

        continue可结束本次循环,但不跳出循环,break语句可直接跳出本层循环。

        程序2 

          用continue1100的偶数之和

    // 6_2_用 ccontinue 编写 1 - 100 的偶数之和
    #include <stdio.h>
    
    main()
    {
        int i, n = 0;
        for(i = 0;i<=100;i++)
        {
            if (i%2 != 0)  //除不尽2就是奇数
            {
                continue; //直接跳出本次循环,进行下次循环 
            }
            else
            {
                n = n + i;
            }
        }
        printf("%d", n);
        printf("
    ");
    }

      break语句

    //break  语句
    #include <stdio.h>
    
    main()
    {
        int i;
        for (i = 1;i <= 10; i++)
        {
            printf("%d
    ", i); //  1 2 3 4 5   结束
            if (i == 5) break;  // 如果i = 5, for循环全部结束
        }
    
    }

      简单的标记法程序 

    //6_2 标记法程序
    #include <stdio.h>
    
    main()
    {
        int n, t;
        scanf_s("%d", &n);
        if (n % 2 == 0)
        {
            t = 0;
        }
        else
        {
            t = 1;
        }
        if (t = 0)
        {
            printf("偶数
    ");
        }
        else
        {
            printf("奇数
    ");
        }
    }

      判断一个数是否为素数;

        假设这个数是n,要判断n是否素数,必须用n除以2n-1,有任意一个除断即不是素数,全部除不断就是素数。

        2n-1可以用一个for循环解决,在for循环中如果n除以任意一个数除断,就要立刻跳出循环。

        在循环中要使用一个变量作为标志,如果是用break跳出循环的,就将这个标志置0,如果是自然退出循环的,标志就置1。当循环结束后,查看标志为0就输出“不是素数”,为1就输出“是

          素数”。

        简单的思路:

          定义i,n,j三个变量

          输入n

          j1(默认是素数)

          循环i=2n-1

            如果n÷i可以除断

            把标志位j0

            跳出循环

          判断j的值

            如果是0就输出“不是素数”

            如果是1就输出“是素数”。

       代码如下:

    //6_3_判断一个数是否为素数
    #include <stdio.h>
    main()
    {
        int i, n, j = 1;
        printf("请输入一个数:");
        scanf_s("%d", &n);
        for (i = 2; i < n ; i++)
        {
            if(n%i == 0)
            {
                j = 0;
                break;
            }
        }
    
        if (j == 0)printf("此数不是素数
    ");
        else printf("此数是素数
    ");
    }

      规律:

        一般循环中的breakcontinue语句都使用if语句判断后执行。

      for循环的变化

        for语句中两个分号之间可以没有表达式,比如:

        for(;i<100;i++){…}     是一种常用写法。

          如果写成for(;;);   就成了死循环。

        这表示,for循环中的所有表达式,它可以根据实际需要进行增减,有些人就喜欢放在循环体中判断循环条件,再用break来跳出循环。

      作业

        1、求

           

        代码:

        

    ///6_4:求西格马k,k=1到100 加上 西格马k平方,k=1到50 加上 西格马k分之一,k=1到10
    #include <stdio.h>
    
    main()
    {
        float n = 0; //累加的值
        int k;    //计数器
        for (k = 1;k<=100;k++)
        {
            n = k + n;
        }
    
        for (k = 1; k <= 50; k++)
        {
            n = n + k *k;
        }
        for (k = 1; k <= 50; k++)
        {
            n = n + 1.0 / k;
        }
        printf("%f
    ", n);
    }

       五一将至,近期不断的更新自己的博客!若有疑问可在评论区留言。

  • 相关阅读:
    uni-app之预加载和取消预加载(仅支持APP和H5)——uni.preloadPage、uni.unPreloadPage
    JavaScript 之数组对象(Array)
    【2019csp模拟】文件列表
    【2019csp模拟】两段子序列
    B. 【普转提七联测 Day 6】载重
    C.【普转提七联测 Day 6】分数
    A. 【普转提七联测 Day 6】石头
    struct和class的区别
    TagHelper中获取当前Url
    为什么要使用 Taghelper (标记助手)
  • 原文地址:https://www.cnblogs.com/httpcc/p/11066401.html
Copyright © 2011-2022 走看看