欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C语言----循环结构2(基础篇六)

程序员文章站 2022-04-15 23:09:04
好久么有写博客,近期项目基本完成,日常的学习也需要提上日程,尽管未来么有希望,但还是低着脑袋往前走吧.....不啰嗦进入主题。 死循环 ※软死机:CPU占用100%,双核占50%,机器明显变慢。出现软死机其实就是死循环。如while(1);就是个死循环语句,请不要用在歪门邪道处。 ※硬死机:鼠标、键 ......

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

  死循环

  ※软死机: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\t",i);
        
    }
    printf("\n");
}

 

  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("\n");
}

 

  break语句

//break  语句
#include <stdio.h>

main()
{
    int i;
    for (i = 1;i <= 10; i++)
    {
        printf("%d\n", 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("偶数\n");
    }
    else
    {
        printf("奇数\n");
    }
}

 

  判断一个数是否为素数;

    假设这个数是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("此数不是素数\n");
    else printf("此数是素数\n");
}

  规律:

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

  for循环的变化

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

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

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

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

 

  作业

    1、求

       C语言----循环结构2(基础篇六)

    代码:

    

///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", n);
}

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