坐牢第四天 20240705

一.for循环

1.1基本格式:

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

{

语句块;

}

表达式1:循环变量赋初值

表达式2:终止条件

表达式3:增值或减值

1.2执行顺序:

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

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

不成立:循环结束

1.3练习:打印所有三位数之间的水仙花数:153==1^3+5^3+3^3

1.先获得所有三位小数 2.判断条件

#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;
}

1.4变形

1.int i;

for(i=1;i<5;i++)

{

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

}

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

2.

int i=1;

for(;i<5;i++)

{

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

}

3.

int i=1;

for(;i<5;)

{

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

i++;

}

4.for

1.5嵌套结构

外层执行一次,内层执行一轮
for(int i=0;i<5;i++)

{

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

{

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

}

}

练习:1.打印九九乘法表

#include<stdio.h>
int main(int argc, char const *argv[])
{
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位小数

2.练习:终端输入行数:5

***** 0空格

 **** 1空格

   *** 2空格

    ** 3

      *4

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

二.while循环

2.1基本结构:

int i=1;

while(终止条件)

{

语句块;

增值或减值;

}

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

三.do-while

3.1基本结构:

do

{

代码段;

} while (终止条件);

四.while和do_while区别:

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

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

五.循环控制语句

break 终止本层循环

continue 结束本层本次循环,继续下一次循环

return 0 结束整个程序

六.课后练习

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

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

#include <stdio.h>
int main(int argc, char const *argv[])
{
    while(1)
    {
    int num;
    printf("shuruyigewuweishu:");
    scanf("%d",&num);
    getchar();
     if(num==0)
    {
     break;
    }
    else if(num%10==num/10000&&num/10%10==num/1000%10)
    {
        printf("huiwenshu:%d\n",num);
    }
    else
     {
        printf("bushihuiwenshu:%d\n",num);
     }
    }
    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=' ';
    int a=0;
    printf("shuru:\n");
    scanf("%d%c%d",&data1,&op,&data2);
    switch (op)
    {
    case('+'):
    a=data1+data2;
    break;
    case('-'):
    a=data1-data2;
    break;
    case('*'):
    a=data1*data2;
    break;
    case('/'):
    a=data1/data2;
    break;
    default:
    printf("cuo\n");
    break;
    }
    printf("%d\n",a);
    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,c=0;
    int sum=0;
    printf("ab:\n");
    scanf("%d %d",&a,&b);
    if(a>b)
    {
     c=a;a=b;b=c;
    }
    for(a;a<=b;a++)
    {
    if(a%2==0)
    {
    sum=sum+a;
    }
    }
    printf("%d\n",sum);
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值