第六章、循环控制结构

//从键盘输入n,然后输出1+2+3+···+n
#include<stdio.h>
int main()
{
    int i,n,sum;
    scanf("%d",&n);
    sum=0;
    /*
    for(i=0;i<=n;i++)
    {
        sum+=i;
    }
    */
    
    /*
    i=0;
    while(i<=n)
    {
    sum+=i;
    }
    */
    //do~while方法
    i=1;
    do
    {
        sum+=i;
    }while(i<=n); //注意:这个循环它至少执行一次
    printf("%d\n",sum);
}
//空语句,常用于编写延时程序
/*
for(i-0;i<n;i++)
{
;    //就一个分号
}
*/

//嵌套循环,输出1!+2!+3!·····。
#include<stdio.h>
int main()
{
    int i,j,k,sum,n;
    sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        k=1;
        for(j=1;j<=i;j++)
        {
            k*=j
        }
        sum+=k;
    }
    /*
    for(i=1;i<=n;i++)
    {
        k=k*i;
        sum+=k;//不用嵌套循环
    }
    */
    printf("%d\n",sum);
}

//条件控制循环:猜数游戏
#include<time.h>
#include<stdio.h>
int main()
{
    int magic,guess,counter=0;
    //srand(time(NULL));设置随机数种子,包含头文件time
    unsigned int seed;
    scanf("%u",&seed);
    srand(seed);  //输入一个随机种子,包含头文件stdlib
    magic=rand()%100+1;//猜1~100的数
    do
    {
        scanf("%d",&guess);
        /*
        ret=scanf("%d",&guess);
        while(ret!=1)    //输入有误,重新输入
        {
            while(getchar()!='\n'); //清除缓冲区非法字符
            ret=scanf("%d",&guess); //再一次输入
        }
        */
        counter++;
        if(guess>magic)
            printf("big!\n");
        else if(guess<magic)
            printf("small!\n");
        else
            printf("Yes!\n");
    }while(guess!=magic);
    //while(guess!=magic&&couter<10);//猜不对且未超过10次继续彩
    printf("counter=%d\n",counter);
}

//流程的转移控制
//读入5个正整数并显示他们,输入负数时,程序终止
#include<stdio.h>
int main()
{
    int i,n;
    for(i=0;i<5;i++)
    {
        scanf("%d",&n);
        if(n<0)
            goto END;//goto语句要少用,除非要跳出多重循环。
         //break; //直接跳出for循环。
         //continue;//跳过下面的语句,不跳出循环
        printf("%d\n",n);
    }
    END:printf("program is end!");
}
发布了34 篇原创文章 · 获赞 2 · 访问量 475

猜你喜欢

转载自blog.csdn.net/qq_42148307/article/details/104811535