• C语言博客作业02循环结构


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

    0.展示PTA总分(0----2)

    1.本章学习总结(2分)

    1.1 for循环语法

        for(表达式1;表达式2;表达式3)
    {
    循环体语句:在条件成立的情况下能够反复执行。
    }
    

    表达式2为真(1),循环能成立;为假(0),结束循环。
    循环体中的语句只能是一条语句

    复合语句在语法上被认为是一条语句

    1.2 while、do while循环语法 (常用于循环次数未知的情况

    while循环

            while(条件表达式)
           {
            进行的循环体内容;
            }
    

    代码举例:

    do-while循环

                do{
                 进行的循环体内容;
                 }while(条件表达式);
    

    代码特点:保证能执行至少一次循环,适合于先循环后判断循环条件的情况。

    如:统计整数的位数。

    1.3 跳出循环相关语句break\continue

    break语句强制循环结束;不再执行循环体后面的语句,跳出循环;
    continue语句仅跳过循环体中其后面的语句,继续下次循环。
    如:

         #include<stdio.h>
         int main ()     
          {
         int i,m;
         scanf("%d",&m);
        for(i=x;i<=m/n;i++)
        {
          if(m%i==0)
           break;
         if(i>m/2&&m!=1)
          printf("ok");
         else 
        printf("no");
         return 0;
        }
    

    上述对素数的判断中,若break语句满足,则m一定不为素数,后面的判断不用进行。break语句使循环提前结束,不再进行for循环的内容

    ```c
       #include<stdio.h>
     int main ()     
      {
     int i,m;
     scanf("%d",&m);
    for(i=x;i<=m/n;i++)
    {
      if(m%i==0)
       continue
     if(i>m/2&&m!=1)
      printf("ok");
     else 
    printf("no");
     return 0;
    }
    ```
    

    改成continue语句后,当满足continue语句所在的判断后,此次循环结束,但for循环并没有结束,而是根据条件是否满足继续进行。

    1.4 循环嵌套

    简单来说就是在循环语句中再次加入循环语句,在大循环中加入小循环。
    如计算1!+2!+3!+......100!

        #include<stdio.h>
        int main (void)
         {
         int i,j;
         double item,sum;
         sum=0;
        for(i=1;i<=100;i++)
       {
        item=1;
        for(j=1;j<=i;j++)
        item=item*j;
         sum=sum+item;
         }
        printf("1!+2!+3!+......100!= %e\n",sum);//使用指数形式输出
        return 0;
         }
    
     ###此题通过双层for循环,让内层计算i!的值,让外层计算阶层的累加值,将问题简单化。
    

    学习体会:循环结构的用处很大,可与包括if-else分支结构和数组在内的多种内容相结合使用。

    循环结构适用于解决需要重复执行,但每次执行都有所变化的情况。

    多做题,多思考。先理清题意,再开始作答。

    2 编程技巧总结(2分)

    各种数列求和问题

    数列求和问题关键在于找出数列通解*8(即各项与项数的关系),同时注意累加**的使用。
    如:

        t=-t;
        sum+=t*i/(2*i-1);    //求交错序列前N项和 
    
        sum=sum+1.0/(2*i-1);    //求奇数分之一序列前N项和
    
        sum=sum+1.0/i;         //求N分之一序列前N项和
    

    字符如何转数字

    暴力方法:
    大写字母转换为小写:
    ch=ch-'A'+'a';
    小写字母转换为大写:
    ch=ch-'a'+'A';

    逆序数字

    关键在于通过取余来获取数字,寻找一个变量来储存数字,通过循环来保证数值。

         #include<stdio.h>
    int main()
    {
    	int num; 
    	int flag = 0;   //变量
    
    	scanf("%d", &num);
    	while (num!= 0)     
    	{
    		flag = flag * 10 + num % 10;
    		num /= 10;               //去尾数
    	}
    	printf("%d", flag); 
    	return 0;
    }
    

    3.PTA实验作业(6分)

    3.1 数列求和问题

    3.1.1 流程图或伪代码介绍思路

    3.1.2 代码截图

    3.1.3 PTA提交列表及说明

    题目:

    3.1.1

    伪代码:

    定义整型存放正整数n
    定义双精度浮点数sum
    定义flag用于变号
    用户输入项数n
    for循环(定义i;i增加至n;i累加)
    sum累加,每一项=i/(2.0*i-1)*flag
    flag进行变号
    结束
    

    3.1.2 代码

    3.1.3 pta提交


    这一题的思路是比较清晰的。注意使用flag进行变号,实现错位的符号变化。

    3.2 图形打印问题

    题目:

    3.2.1 数据处理

    输入i作为外循环改变量
    定义j作为内循环改变量
    分为两部分(上下)进行输出
    第一个for循环输出空格(第一格5个空格为起点下半部分倒向计算)
    第二个for循环输出(第一格一个为起点)

    3.2.2 代码截图

    3.2.3 PTA提交列表及说明


    格式错误的出现是由于输出空格的失误。
    这类图形输出题主要在于拆解输出。

    3.3

    题目:

    3.3.1 单步调试截图

    第一次:


    发现没有输出

    警告无返回值

    ![](https scanf("%d", &num);
    max = num;/img2020.cnblogs.com/blog/2160553/202011/2160553-20201122222601642-1484472943.png)


    第一个循环顺利进入


    输出奇怪的数值。

    修改后:

    可正常输出。

    3.3.2 代码截图

    3.3.3 PTA提交列表及说明

  • 相关阅读:
    C#基础
    Mybatis
    Powerdesigner显示 表的comment、列的comment
    oracle多账套(用户)引用同一个账套的表或视图数据
    Python批量删除加密压缩包内指定文件脚本
    Dropdown 追加到 template 标签的子元素里
    C# POST GET请求方式汇总
    ECharts 引入中国地图和区域地图
    leetcode91解码
    新编辑距离
  • 原文地址:https://www.cnblogs.com/keepgoingccc/p/13971700.html
Copyright © 2020-2023  润新知