循环结构

这个作业属于哪个班级 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

posted @ 2020-11-22 21:32  耶斯莫拉  阅读(229)  评论(0编辑  收藏  举报