c语言谭浩强第五版---全书笔记+习题(二)

用while、do-while和for语句实现循环
案例:求1+2+3+4+…+100;的值

    int i=1,num=0;
    while (i<=100){
   
        num=num+i;
        i++;
    }
    printf("累计之和是:%d",num);
//用do-while实现
    int i=1,sum=0;
    do {
   
        sum=sum+i;
        i++;
    }while (i<=100);
    printf("累计的值是:%d",sum);
//用for语句实现
    int i,sum=0;
    for(i=1;i<=100;i++){
   
        sum=sum+i;
    }
    printf("累计的值是:%d",sum);

案例:for语句的三个表达式,i=1可以省略,但是后面的";" 不能省略;省略之后要在for循环之前 初始化i的值,如int i=1;
表达式三也可以省略,如下:

    int i,sum=0;
    for(i=1;i<=100;){
   
        sum=sum+i;
        i++;     //省略的时候,可以在循环体中使循环变量增值
    }

表达式13,可以是一个简单的表达式,也可以是逗号表达式,如下:

for(i=0,j=100;i<=j;i++,j--)k=i+j;

逗号表达式内,自左向右顺序求解,如下:

for(i=i;i<=100;i++,i++)sum=sum+i; 

相当于

 for(i=i;i<=100;i+2)sum=sum+i;

表达式2一般是关系表达式(i<=100)或者逻辑表达式(a<b&&x<y)
但也可以是数值表达式或字符表达式,只要其值是非0就执行循环体,如下:

for(i=1;(c=getchar()!='\n';i+=c));

for循环中定义的变量只能在for循环中使用

whiledo-while的比较

  • do-while是先执行循环体,最少执行一次
  • while是先执行判断,可能一次都不执行
  • 三种循环方式都能用break;结束循环。用continue;结束本次循环;

案例
全系1000名学生,慈善募捐,累计捐到10万元就结束,计算人均捐款;

  • 可以在文件头定义下常量# define SUM=100000; 下面的程序可以直接用哦
    float amount,total,aver;
    int i;
    for(i=1;i<=1000;i++){
   
        printf("please enter amount:");
        fflush(stdout);
        scanf("%f",&amount);
        total=total+amount;
        if (total>=100000)break;
    }
    aver=total/i;
    printf("捐献总额是:%f。捐献人数是:%d。人均捐献是:%f",total,i,aver);

	//要求输出100~200不能被3整除的整数。需要你用到continue
    printf("The number divisible by 3 is:");
    for(int i=100;i<=200;i++){
   
        if(i%3==0){
   
            printf("%d ",i);
        }
    }

输出以下4*5的矩阵
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20

    for(int i=1;i<=4;i++){
   
        for(int j=1;j<=5;j++){
   
            if (j==5){
   
                printf("%d \n",j*i);break;   //结束本次循环,外层循环依然执行
            }else{
   
                printf("%d ",j*i);
            }
        }<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值