zoukankan      html  css  js  c++  java
  • 博客作业——循环结构

    这个作业属于哪个班级 C语言--网络2011/2012
    这个作业的地址 C博客作业0--循环结构
    这个作业的目标 学习循环结构内容,包括for循环、while循环、循环嵌套
    姓名 雷正伟

    0.展示PTA总分


    1.本章学习总结

    1.1 for循环语法

    for ([表达式1](循环变量赋初值);[表达式2](循环条件);[表达式3](循环变量增值))
    {
      语句;
    }
    
    • 表达式1、表达式2和表达式3之间是用分号;隔开的,千万不要写成逗号。
    1. 先执行“表达式1”;
    2. 再执行“表达式2”,如果它的值为真(非0),则执行循环体,否则结束循环;
    3. 执行完循环体后再执行“表达式3”;
    4. 重复执行步骤2.和2.,直到“表达式2”的值为假,就结束循环;
    5. 上面的步骤中,2.和3.是一次循环,会重复执行,for语句的主要作用就是不断执行步骤2.和3.;

    1.2 while、do while循环语法

    while语句

    while (表达式)
    {
      语句;
    }
    
    • 先计算控制表达式。如果为true,就执行循环体,然后再次计算控制表达式。如果控制表达式为false,程序跳过循环体,而去执行循环体后面的语句。

    do while语句

    do
    {
      语句;
    }
    while (表达式);
    
    • 首先无条件地执行一次循环体,然后再根据循环控制表达式的值来判断是否继续执行循环体。若为true,则继续执行;若为false,则停止执行,退出 do-while 循环。也就是说,do-while 循环至少执行一次循环体。

    1.3 跳出循环相关语句breakcontinue

    1.31break语句

    • 当break关键字用于while、for循环时,会终止循环而执行整个循环语句后面的代码。break关键字通常和if语句一起使用,即满足条件时便跳出循环。

    例:计算1加到100的值

        #include <stdio.h>
        int main()
        {
            int i=1, sum=0;
            while(1)        //循环条件为死循环//
          {  
                sum+=i;
                i++;
            if(i>100)
                break;
           }
            printf("%d
    ", sum);
            return 0;
        }
    

    1.32continue语句

    • continue 语句的作用是跳过循环体中剩余的语句而强制进入下一次循环.

    例:输出2位数中所有能同时被3和5整除的数

    #include<stdio.h>
    int main()
    { int n;
    for (n = 10; n < 100; n++)
    	{
    	if (n % 3 != 0 || n % 5 != 0) 
    		continue;      //n不满足要求,结束本次循环//
    	printf(" %5d
    ", n);
    	}
    	return 0;
    }
    
    • break与continue的对比:break用来结束所有循环,循环语句不再有执行的机会;continue用来结束本次循环,直接跳到下一次循环,如果循环条件成立,还会继续循环。

    1.4 循环嵌套

    例:打印九九口诀表

    #include <stdio.h>
    int main()
    {
        int i, j, n;
        scanf("%d", &n);
        for (i = 1; i <= n; i++) 
        {
            for (j = 1; j <= i; j++) 
            {
                printf("%d*%d=%-4d", j, i, i * j);
            }
            printf("
    ");
        }
        return 0;
    }
    
    • 在一个循环体语句中又包含另一个循环语句,称为循环嵌套。

    学习体会

    1. 目前对循环结构还是非常不熟练,写题目的时候会想很久都没有思路,要借鉴一下才可以开始写代码。
    2. 还不能灵活使用三种循环语句熟练解决问题。

    2.编程技巧总结

    求交错序列前N项和

    计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和

    #include<stdio.h>
    int main()
    {
    	int n, i, c;
    	double a, b, sum;
    	a = 1;
    	b = 1;
    	sum = 0;
    	c = 1;
    	scanf("%d", &n);
    
    	for (i = 0;i < n;i++)
    	{
    		sum += a / b * c;
    		a++;
    		b += 2;
    		c = -c;
    	}
    	printf("%.3f", sum);
    	return 0;
    } 
    

    特殊a串数列求和

    给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和

    #include<stdio.h>
    int main()
    {
    	int a, n, i, sum;
    	double b;
    	sum = 0;
    	b = 0;
    	scanf("%d %d", &a, &n);
    
    	for (i = 1;i <= n;i++)
    	{
    		b = b * 10 + a;    //组成n个a//
    		sum += b;     //求a的和//
    	}
    	printf("s = %d", sum);
    	return 0;
    }
    

    打印菱形图形

    i k j
    1 3 1
    2 2 3
    3 1 5
    4 0 7
    5 1 5
    6 2 3
    7 3 1

    解题思路:

    1.外循环控制行数:i
    2.内循环控制空格数:k
    3.内循环控制个数:j*

    (k = |4-i|)
    (j = 7-2*|4-i|)
    #include<stdio.h>
    #include<math.h>
    int main()
    { 
    	int i, j, k;
    	int n;
    	scanf("%d", &n);
    	for (i = 1;i <= 7;i++)
    	{
    		for (k = 1;k <= abs(4 - i);k++)
    			printf(" ");
    		for (j = 1;j <= 7 - 2 * abs(4 - i);j++)
    			printf("*");
    		printf("
    ");
    	}
    	return 0;
    }
    

    整数四则运算

    #include<stdio.h>
    int main()
    { 
    	int a, b;
    	scanf("%d%d", &a, &b);
    	printf("%d + %d = %d
    ", a, b, a + b);     //输出a+b的值//
    	printf("%d - %d = %d
    ", a, b, a - b);     //输出a-b的值//
    	printf("%d * %d = %d
    ", a, b, a * b);     //输出a*b的值//
    	printf("%d / %d = %d
    ", a, b, a / b);     //输出a/b的值//
    	return 0;
    }
    

    3.PTA实验作业

    3.1数列求和问题

    特殊a串数列求和

    特殊a串数列求和

    3.1.3 PTA提交列表及说明

    特殊a串数列求和

    1. 刚开始以为是字符串的相加,然后多读了几遍以后发现不是,只是一串数列求和。(也就是2+22+222+2222+...)

    3.2打印菱形图形

    打印菱形图形

    3.2.3 PTA提交列表及说明

    打印菱形图形

    1. 之前打代码的时候没有可以关注每一行开始的空格,就会导致输出的图形不是一个菱形。
      2.每一行的*都在渐增或者渐减,要找到每一行的规律。

    printf调试如何检查错误

    3.3.1 单步调试截图

    3.3.2 代码截图

    龟兔赛跑

    1. 在循环内设计一个printf输出观察变量,就可以观察到每一次循环的变量值。
  • 相关阅读:
    正在呢 webflux
    reactive reactor
    从早上5:30开始整理资料
    1
    ES基础(四十七)第二部分总结与测验
    ES基础(四十六)Elasticsearch 数据建模最佳实践
    ES基础(四十四)Ingest Pipeline & Painless Script
    ES基础(四十三)Update by Query & Reindex
    ES基础(四十二)文档的父子关系
    ES基础(四十一)对象及Nested对象
  • 原文地址:https://www.cnblogs.com/lzwx2/p/13959088.html
Copyright © 2011-2022 走看看