c编程入门day03

        

循环结构程序

循环程序注意问题:

1.变量处置
2.终止条件
3.变量变化

循环控制结束句:

break  continue

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

break:终止循环

return 0:结束程序

goto语句

例子:

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

while语句

格式
while(表达式)
{
}

   int i=1;
    while(i<4)
    {
        printf("qqqq\n");
        i++;
    }
死循环:while(1)

例子:

#include<stdio.h>
int main(){
    int i=1;
    int sum=0;

    while (i<=100){
        sum+=i;
        i++;      
    }
    printf("1+2+...+%d=%d\n",i,sum);
}
 水仙花数: C语言求水仙花数-CSDN博客
回文数:

方法1:

#include <stdio.h>

int main() {
    int n;
    
    while (1) {
        printf("请输入一个五位数(输入0结束程序): ");
        scanf("%d", &n);

        if (n == 0) {
            printf("程序结束。\n");
            break;
        }

        if (n < 10000 || n > 99999) {
            printf("输入的数字不是五位数。\n");
        } else {
            if (n / 10000 == n % 10) {
                if (n / 1000 % 10 == n / 10 % 10) {
                    printf("%d 是回文数。\n", n);
                } else {
                    printf("%d 不是回文数。\n", n);
                }
            } else {
                printf("%d 不是回文数。\n", n);
            }
        }
    }

    return 0;
}

方法2:

#include<stdio.h>
int main(){
    int num;
    while(1){
        printf("请输入一个五位数:");
        scanf("%d",&num);
        if ((num<10000||num>99999)&&num==0){
            printf("输入有错误\n");
            continue;
        }else if(num!=0){
            int a=num/10000;
            int b=num/1000%10;
            int c=num/10%10;
            int d=num%10;
            if(a==d&&b==c)
                printf("%d是回文\n",num);
            else
                printf("%d不是回文数\n",num);
            }
            else
            return 0;                     
        }
    }

do-while语句

例子

int a=8;
    do
    {
        printf("qqqqq\n");
        a++;
    } while (a<5);

例子:

#include<stdio.h>
int main(){
    int i=1;
    int sum=0;
    do{
        sum+=i;
        i++;  
    }while (i<=100);
    printf("1+2+...+%d=%d\n",i,sum);
}
练习:
do-while和while的区别:

while:先判断执行

do...while:先执行一次程序判断

for语句

//格式

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

{

代码段;

}

//嵌套
for(表达式1;表达式2;表达式3)
{
	for(表达式1;表达式2;表达式3)
	{}
}
外层循环执行一次,内层循环执行一轮
int i,j;
    for(i=1;i<10;i++)
    {
        for(j=1;j<=i;j++)
        {
            printf("%d*%d=%2d ",i,j,i*j);	//%2d  位宽
        }
        printf("\n");
    }
//输出格式注意:
int a=2,b=22,c=222;
    printf("%3d\n",a);
    printf("%3d\n",b);
    printf("%3d\n",c);

//注释

表达式1:变量赋初值

表达式2:终止条件

表达式3:增值或减值

执行顺序:首先执行表达式1进行赋值,然后判断表达式2是否成立,如果成立就进入循环执行语句块,再执行表达式3进行增值或减值然后继续判断表达式2是否成立,直到表达式2不成立退出循环

//变形:

标准形式:
  int i;

    for(i=0;i<4;i++)

    {

        printf("%d ",i);

    }

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

变形1:


int i=0;

    for(;i<4;i++)

    {

        printf("%d ",i);

    }

变形2:

int i=0;

    for(;i<4;)

    {

        printf("%d ",i);

        i++;

    }

变形3:

int i=1;

    for(;;)

    {

        printf("%d ",i);

        i++;

    }

注意:变形3该程序无限循环,ctrl c 退出程序执行

练习:计算1到10之间的奇数和

#include<stdio.h>
int main(){
    int i,sum=0;
    for(i=0;i<=10;i++){
        if (!(i%2==0)){
            sum+=i;
        }
    }
    printf("sum是%d",sum);
}

练习2:

答案:D

练习3:打印九九乘法表

#include<stdio.h>
int main(){
    int i,j;
    for(i=1;i<10;i++){
        for(j=1;j<=i;j++){
            printf("%d*%d=%2d ",i,j,i*j);
            //%2d,打印两位数让它对齐
        }
        printf("\n");
    }
    return 0;
}
//外层循环执行一次,内层循环执行一轮

数组:

特点:

内存连续

数据类型相同

分类:

一维数组
格式:

存储类型

数据类型

   数组名

[元素个数]

int

arr

[5]

例:int  a[5]={2,3,5,8,9};

a[0]------2

a[1]------3

a[2]------5

a[4]------9

访问时,索引从0开始

char  a[5]={'q','w','e'};

数组名:

也是数组首地址

字节大小

int  a[5];

4*5=20

printf("%d",sizeof(a));

初始化

完全初始化

int a[5]={2,3,5,8,9};

部分初始化

int a[5]={9}; 初始化部分为0

int arr[66]={};

未初始化

int b[33]; 随机值

b[0]=9;

循环遍历
   int a[5]={};
    for(int j=0;j<5;j++)
        scanf("%d",&a[j]);
    for(int i=0;i<5;i++)
    {
        printf("%d\n",a[i]);
    }

练习:

输入十个数平均值,去掉最高分和最低分

#include<stdio.h>
int main(){
    
    float a[10]={};
    for(int i=0;i<10;i++){
        scanf("%f",&a[i]);
    }    
    float sum=0;
    for(int i=0;i<10;i++){
        sum+=a[i];       
    }
    printf("总数是%.2f",sum);
    float max = a[0];
    float min = a[0];
     for (int i = 1; i < 10; i++) {
        if (a[i] > max) {
            max = a[i];
        }
        if (a[i] < min) {
            min = a[i];
        }
    }

    printf("最高分是: %.2f\n", max);
    printf("最低分是: %.2f\n", min);
   
   

    float ave=(sum-max-min)/8;
    printf("平均数是%.2f",ave);


}

答案D

课后作业:

1.

int  a[15]={1,1};

斐波那契数列:1 1 2  3  5  8   13    21

2.

打印以下图案:

要求行数从终端输入。

输入:5   

 *

**

***

****

*****

      *****

 ****

  ***

   **

    *

3.

答案跳转:day03课后练习-CSDN博客

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值