课外天地 李树青学习天地C语言程序设计 → [推荐]第四课代码讲义:循环语句之一


  共有10148人关注过本帖树形打印复制链接

主题:[推荐]第四课代码讲义:循环语句之一

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1939 积分:26594 威望:0 精华:34 注册:2003/12/30 16:34:32
[推荐]第四课代码讲义:循环语句之一  发帖心情 Post By:2015/10/20 13:04:01 [只看该作者]

打印1到100之间所有的整数:
int main()
{
    int i;

    for(i=1; i<=100; i++)
        printf("%d\n",i);

    return 0;
}


每五个换行
int main()
{
    int i;

    for(i=1; i<=100; i++)
    {
        printf("%d\t",i);
        if(i%5==0)
            printf("\n");
    }


    return 0;
}

打印奇数
int main()
{
    int i;

    for(i=1; i<=100; i++)
    {
        if(i%2==1)
            printf("%d\t",i);

    }


    return 0;
}

增加换行
int main()
{
    int i;

    for(i=1; i<=100; i++)
    {
        if(i%2==1)
            printf("%d\t",i);
        if(i%10==9)
            printf("\n");

    }


    return 0;
}


简单版本
int main()
{
    int i;

    for(i=1; i<=100; i+=2)
    {
        printf("%d\t",i);

    }


    return 0;
}

 

倒序打印
int main()
{
    int i;

    for(i=100; i>0; i--)
    {
        if(i%2==1)
            printf("%d\t",i);

    }


    return 0;
}

进一步变换代码
int main()
{

    int i=1;
    for(; i<=100; i++)
    {
        printf("%d\t",i);

    }


    return 0;
}

请问该程序在循环结束后,i变量值为多少?

进一步变换代码
int main()
{

    int i=1;
    for(; i<=100;)
    {
        printf("%d\t",i);
        i++;

    }


    return 0;
}

等价写法
int main()
{

    int i=1;
    while(i<=100)
    {
        printf("%d\t",i);
        i++;

    }


    return 0;
}

死循环
int main()
{
    int i;

    while(i>=1)
    {
        printf("%d\t",i);
    }


    return 0;
}

 

请问这个程序是否为死循环?
int main()
{
    int i;

    while(i>=1)
    {
        printf("%d\t",i);
        i*=2;
    }


    return 0;
}

提示:并非死循环,因为变量溢出后产生的值会为负数,从而小于1

猜数字:
版本1:
#include <time.h>

int main()
{
    srand(time(0));
    //printf("%d",rand()%100+1);
    int rnd=rand()%100+1;
    printf("%d\n",rnd);
    int nmbr;

    while(1)
    {
        scanf("%d",&nmbr);
        if(nmbr>rnd)
        {
            printf("太大了!\n");
        }
        else if(nmbr<rnd)
        {
            printf("太小了!\n");

        }
        else
        {
            printf("太好了!\n");
            return 0;
        }
    }

 

    return 0;
}

版本2:
#include <time.h>

int main()
{
    srand(time(0));
    //printf("%d",rand()%100+1);
    int rnd=rand()%100+1;
    //printf("%d\n",rnd);
    int flag=1;
    int nmbr;

    while(flag==1)
    {
        scanf("%d",&nmbr);
        if(nmbr>rnd)
        {
            printf("太大了!\n");
        }
        else if(nmbr<rnd)
        {
            printf("太小了!\n");

        }
        else
        {
            printf("太好了!\n");
            flag=0;
        }
    }

 

    return 0;
}


增加次数统计
#include <time.h>

int main()
{
    srand(time(0));
    //printf("%d",rand()%100+1);
    int rnd=rand()%100+1;
    printf("%d\n",rnd);
    int flag=1;
    int nmbr;
    int count=0;

    while(flag==1)
    {
        count++;
        scanf("%d",&nmbr);
        if(nmbr>rnd)
        {
            printf("太大了!\n");
        }
        else if(nmbr<rnd)
        {
            printf("太小了!\n");

        }
        else
        {
            printf("太好了!你总共猜了%d次!\n",count);
            flag=0;
        }
    }

 

    return 0;
}

 

 

 

 

 

 

 

 

 

 


 

[此贴子已经被作者于2015-11-30 10:54:26编辑过]

 回到顶部