zoukankan      html  css  js  c++  java
  • 循环结构

    这个作业属于哪个班级 C语言--网络2011/2012
    这个作业的地址 C博客作业00--循环结构
    这个作业的目标 学习循环结构内容,包括for循环、while循环、循环嵌套
    姓名 王小雨
    目录
    0.展示PTA总分(0----2)
    1.本章学习总结(2分)
    1.1 for循环语法
    1.2 while、do while循环语法
    1.3 跳出循环相关语句break\continue
    1.4 循环嵌套
    学习体会
    2 编程技巧总结(2分)
    3.PTA实验作业(6分)
    3.1 数列求和问题
    3.1.1 流程图或伪代码介绍思路
    3.1.2 代码截图
    3.1.3 PTA提交列表及说明
    3.2 图形打印问题
    3.2.1 数据处理
    3.2.2 代码截图
    3.2.3 PTA提交列表及说明
    3.3 自选一题,介绍printf调试如何检查错误
    3.3.1 单步调试截图
    3.3.2 代码截图
    3.3.3 PTA提交列表及说明
    评分注意事项。

    0.展示PTA总分


    本章学习总结

    1.1 for循环语法

     for(表达式1;表达式2;表达式3)
     {
       执行代码块
     }
    

    表达式1:对变量赋值做初始化
    表达式2:循环条件 满足执行代码块,不满足结束循环
    表达式3:循环体
    注意:· for循环中三个表达式可以省略,分号;不能省略
    · 表达式2或3如果不做处理,则为死循环

    1.2 while、do while循环语法

     while(表达式)
     {
       执行代码块
     }
    

    表达式为循环条件,执行代码块为循环体
    满足表达式则执行循环体
    循环体中如果包括一个以上语句,则必须用{}括起来,形成复合语句

     do
     {
        执行代码块
     }while(表达式);
    

    do while的语义:先执行代码块,然后判断是否满足表达式,如果满足则继续循环,不满足则结束循环
    因此do while至少会执行一次循环
    注意:while括号后必须有分号;

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

    break用于跳出当前循环
    注意 · 没有循环结构时,break不能用在单独的if else语句中
    · 多层循环中,一个break只能跳出当前循环
    continue用于结束当前循环,进入下一次循环
    区别:break是跳出当前整个循环,continue是结束本次循环开始下一次循环

    1.4 循环嵌套

    for语句与for语句形成嵌套,for语句也可与while,do-while语句相互嵌套,构成多重循环

    学习体会

    从循环开始,代码难度增加不少,十分考验自己的思维逻辑,大多数时候都没有思路,需要先参考别人的代码

    2 编程技巧总结

    2.1判断素数

    if(m==1)//   1不是素数
    {
          flag=0;//引入flag
    }
    for(i=2;i<=m/2;i++)//  m依次除以从2到m/2的所有数
    {
          if(m%i==0)// 一旦余数为0则不是素数
                {
                   flag=0;//flag的值改为0
                   break;
                }
    }
    if(flag=1)
    {
       printf("yes\n");
    }
    else
    {
       printf("no\n");
    }
    

    2.2四则运算

    case '+':
          z=x+y;
          break;
    case '-':
          z=x-y;
          break;
    case '*':
          z=x*y;
          break;
    case '/':
          z=x/y;
          break;
    

    2.3转化

    字符转数字

    a=a-'0'

    大写字母转小写

    ch=ch-'A'+'a'

    小写字母转大写

    ch=ch-'a'+'A'

    2.4数字逆序

    sum=0;
    do
    {
    	n = num % 10;//取最后一位数
    	sum = sum * 10 + n;//组成新的数字
    	num = num / 10;//去除最后一位		
    
    }while(num != 0 );
    

    2.4求交错序列前N项和

    代码截图

    2.5统计整数位数

    思路:取个位,去个位

    代码

     count=0;//赋初始值
          do{
                number=number/10;//每次除去一位数
                count++;//累计位数
            }while(number!=0);
    

    2.6图形打印问题

    做法

    通过两层循环分别控制行数和每一行的元素

      for(i=0;i<n;i++)
      {
          for(j=0;j<n;j++)
          {
             ...
           }
       }
    

    3.PTA实验作业

    3.1 数列求和问题

    3.1.1介绍思路

    相当于2+22+222...,利用for循环,count表示整数的位数,先用pow获取数的最高位赋给sum,然后累加

    伪代码

    定义变量a(a的值),n(n个数),sum(计算并存储每一项的值),s(数列之和);
    for (int i=1;i<=n;i++)
    {
          下一项数表达式;//根据数列中前一项和后一项的关系得到下一个数的值
          s等于sum累加求和;
    }
    end for;
    输出s的值;
    return 0;//结束程序;
    

    3.1.2代码截图

    3.1.3PTA提交列表及说明



    忘了开始给s初始化

    3.2 图形打印问题

    3.2.1数据处理

    int a,b,c
    a代表行数,是控制最外层的循环;b控制每一行星号前面的空格数;c控制每一行星号的个数

    伪代码

    for(i=0;i<7;i++)
      {
          if(i<=3)//前三行
          {
              for(空格条件)
                printf(" ");
              for(*条件、关系式)
                printf("*");
          }
          if(i>3)//后三行
          {
              for(空格条件)
                printf(" ");
              for(*条件、关系式)
                printf("*");
          }
          printf("\n");
       }
    

    3.2.2代码截图


    3.2.3PTA提交列表及说明


    格式错误是因为没有看清题目要求第一行*前面有五个空格,我还以为是三个

    3.3 打印九九口诀表

    3.3.1数据处理

    int a,b,N
    N为题目中给出的,代表要打出11到NN的口诀表;b代表每行号右边的数,它在每行是不变的,所以是外层循环;a代表每行号左边的数,它从1开始递增

    3.3.2代码截图

    3.3.3PTA提交列表及说明


    格式错误是因为题目中要求等号右边数字占4位左对齐,表示为%-4d

  • 相关阅读:
    lesson
    lesson
    课后习题-5
    lesson
    lesson
    lesson
    重启网络服务时 Bringing up interface eth0
    课后习题-4
    基础扩展
    课后习题-3
  • 原文地址:https://www.cnblogs.com/wxy1459995649/p/14021582.html
Copyright © 2011-2022 走看看