建议使用vm虚拟机安装mvs2010,在未来教育的下载中心下载mvs2010,不要去下完整包

设计循环结构程序

while循环结构

循环结构是结构化程序设计的基本结构之一,它与顺序结构、选择结构共同作为各种复杂程序的基本结构。

解决循环问题的基本步骤和方法

2024-06-09T00:54:43.png

while语句的一般格式

while(表达式)
{
    循环体语句组
}

执行过程

while语句的应用

高斯求和算法
高斯求和算法
while循环结构的实现

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

设置一个变量,让他每次+1。
设置一个求和变量

例题

用while循环来计算水仙花数

答案

#include <stdio.h>
int main (void)
{
    int i = 100;
    int a,b,c;
    while(i<=999)
    {
        a=i/100;//百位
        b=i/10%10;//十位
        c=i%10;//个位
        if(a*a*a+b*b*b+c*c*c == i)
        {
            printf("水仙花数:%d\n",i);
        }
        i++
    }
    return 0;
}

do....while语句的一般格式

do
{
    循环体语句组;
}
while(表达式);
/*while行的分号不能缺省*/

执行过程

do....while的应用

用do...while循环来计算0-100 内所有偶数的和。

解析


2024-06-09T03:46:10.png


答案

#include<stdio.h>
int main()
{
    int sum=0,i=2;
    do
    {
        sum = sum +i;
        i =i + 2;
    }while(i<= 100);
    printf("sum=%d\n",sum);
    return 0;
}

do...while循环结构的说明

  • do-while语句是先执行语句序列一次,后判断表达式的值
  • 如果do-while语句的循环体部分是多个语句组成,则必须用左右大括号括起来
  • 书写时不要忘记while圆括号后面有一个分号“;”

while和do...while的比较

对比

for循环结构

for(表达式1;表达式2;表达式3)
{
    循环体语句组;
}

流程图

for循环结构的说明


表达式1一般为赋值表达式,用于进入循环之前给循环变量赋初值,后面有“;”分隔。
表达式2一般为关系表达式或逻辑表达式,用于执行循环的条件判定,它与while、do-while循环中的表达式作用完全相同,后面用“;”分隔
表达式3一般为赋值表达式或自增(i=i+1 可表示成i++)、自减(i=i-1可表示成i--)表达式,用于修改循环变量的值
如果循环体部分是多个语句组成的,则必须用大括号括起来,使其成为一个复合语句。

for循环结构说明

流程图

实现

int main()
{
    int i, sum =0;
    for(i=1;i<= 100;i++)
    {
        sum +=i;
    }
    printf(“sum=%d\n”,sum);
    return 0;
}

拓展

for(表达式1;表达式2;表达式3)        //表达式1,2,3都可以省略,但是,分号不能省略!
{
    循环体语句组;
}

拓展1

for语句的一般形式中的“表达式1”可以省略。但要注意省略表达式1时,其后的分号不能省略

#include<stdio.h>
void main()
{
    int i=1, sum = 0;
    for(;i<= 100; i++)
    {
        sum += i;
    }
    printf("sum= %d\n", sum);
}

拓展2

如果省略表达式2,即表示表达式2的值始终为真,循环将无终止地进行下去

#include<stdio.h>
#include<windows.h>
void main()
{
    int i=1, sum = 0;
    for(; ; i++)
    {
        sum += i;
        sleep(100);//延时函数
        printf("循环了%i次\n",i);
    }
    printf("sum= %d\n",sum);
}

拓展3

如果省略表达式3,也将产生一个无穷循环。因此,应另外设法保证循环能正常结束,可以将循环变量的修改部分(即表达式3)放在循环语句中控制。

#include<stdio.h>
#include<windows.h>
void main()
{
    int i=1, sum = 0;
    for(;;)
    {
        i++;
        sum += i;
        Sleep(100);//延时函数
        printf("循环了%d次,此时的sum值为%d\n",i,sum);
    }
    printf("sum= %d\n",sum);
}

for循环结构的应用

题目:用for循环打印出1-10的平方
答案

{
    int a,sum;
    for(a = 1;a <= 10;a++)
    {
        sum = a * a;
        printf("%d的平方时%d",a,sum);
    }
    return 0;
}