day5 笔记

<1> 循环

1.1 for

(1)基本结构:

        for(表达式1; 表达式2; 表达式3)

        {

                语句块;

        }

#include<stdio.h>
int main(int argc, char const *argv[])
{
    for(int i=0;i<5;i++)
    {
        printf("%d\n",i);
    }
    return 0;
}

 

(2)执行顺序:

        先执行表达式1,判断表达式2是否成立:

        成立:进入循环,执行代码块,再执行表达式3,再判断表达式2

        不成立:退出循环

(3)练习:

    1.打印所有三位数之间的水仙花数

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int a=0,b=0,c=0;
    for(int i=100;i<1000;i++)
    {
        a=i%10;    //个位
        b=i/10%10;    //十位
        c=i/100;    //百位
        if(i==a*a*a+b*b*b+c*c*c)
        {
            printf("%d\n",i);
        }
    }
    return 0;
}

 

2.判断一个三位数是不是水仙花数

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int x=0;
    int a=0,b=0,c=0;
    printf("输入一个三位数:");
    scanf("%d",&x);
    a=x%10;
    b=x/10%10;
    c=x/100;
    if(x==a*a*a+b*b*b+c*c*c)
    {
        printf("%d是水仙花数\n",x);
    }
    else
    {
        printf("%d不是水仙花数\n",x);
    }
    return 0;
}

 

(3)变形

int i;         

for(i=1;i<5;i++)         //原型

{

printf("%d\n",i);

}

printf("i:%d\n",i); //i=5

==============================

int i=1;

for(;i<5;i++)        //省略表达式1

{

printf("%d\n",i);

}

================================

int i=1;

for(;i<5;)        //省略表达式1和表达式3

{

printf("%d\n",i);

i++;

}

==================================

int i=1;

for(;;);        //省略表达式2------会造成无限循环

{

printf("%d\n",i);

i++;

}

==================================

(4)嵌套结构:

外层执行 一次 内层 执行 一轮

for(int i=0;i<5;i++)

        {

                for(int j=0;j<3;j++)

                {

                        printf("%d %d\n",i,j);

                }

        }

打印九九乘法表

for(int i=1;i<10;i++)
    {
        for(int j=1;j<=i;j++)
        {
            printf("%d*%d=%d\t",i,j,i*j);
        }
        putchar(10);
    }

%m.n          其中m:位宽       .n保留n位小数

int a=2,
    b=22,
    c=222;
    printf("%3d\n",a);
    printf("%3d\n",b);  
    printf("%3d\n",c);

 

练习:

 终端输入 行数

5

*

**

***

****

*****

***** 0空格

**** 1空格

*** 2空格

** 3

*

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++)
        {
            printf("*");
        }
        putchar(10);
    }
     for(int i=n;i>=1;i--)
    {
        for(int j=1;j<=n-i;j++)
        {
            printf(" ");
        }
        for(int j=1;j<=i;j++)
        {
            printf("*");
        }
        putchar(10);
    }
    return 0;
}

 

1.2 while

(1)结构:

while(终止条件)

{

        代码段;

        增值/减值;

}

死循环: while(1)        for(;;)

               while(0) 含义是 :判断是假,循环结束

1.3 do_while

(1)结构:

do

        {

                代码段;

        } while (终止条件);

(2)while 和 do_while 区别:

do_while   先执行一次代码段,再判断条件是否成立;

while   先判断条件是否成立,再执行代码段

1.4 循环控制语句

break : 终止本层整个循环

continue : 终止本层本次循环,继续下次循环

return 0 : 结束整个程序

练习:

1.输入一个5位数,判断它是不是回文数,当输入0时循环结束。

   即12321是回文数,个位与万位相同,十位和千位相同。

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int x=0;
    int a,b,c,d;
    do
    {
        printf("输入一个5位数:");
        scanf("%d",&x);
         if(x==0)
        {
            break;
        }
        a=x%10;
        b=x/10%10;
        c=x/1000%10;
        d=x/10000;
        if(a==d&&b==c)
        {
            printf("他是回文数\n");
        }else
        {
            printf("他不是回文数\n");
        }
    }while(1);
    return 0;
}

2.写程序实现功能:读入两个整数(data1和data2)和一个运算符(op),计算表达式data1 op data2 的     值.其中op可以为+、-、*、/四个符号中的任一种(用switch语句实现)

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int data1=0,data2=0;
    char op=0;
    printf("输入两个数字和一个字符:");
    scanf("%d %c %d",&data1,&op,&data2);
    switch(op)
    {
        case '+':
            printf("%d%c%d=%d\n",data1,op,data2,data1+data2);
            break;
        case '-':
            printf("%d%c%d=%d\n",data1,op,data2,data1-data2);
            break;
        case '*':
            printf("%d%c%d=%d\n",data1,op,data2,data1*data2);
            break;
        case '/':
            printf("%d%c%d=%d\n",data1,op,data2,data1/data2);
            break;
        default:
            printf("输入格式错误\n");
    }
    return 0;
}

3.输入任意两个数,输出两数之间(包括这两个数)偶数之和。

   思路: 将输入的两个数a,b中小的数a,依次加1,加到b值的大小,每次循环判断这个数a是否为                 偶数,则累加到sum 中

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int a=0,b=0;
    int sum=0,tem=0;
    printf("输入两个数:");
    scanf("%d %d",&a,&b);
    if(a>b)
    {
        tem=a;
        a=b;
        b=tem;
    }
    for(;a<=b;a++)
    {
        if(a%2==0)
        {
            sum+=a;
        }
    }
    printf("sum=%d\n",sum);
    return 0;
}

  • 15
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值