一、PTA实验作业

题目1.打印菱形图案

1. 本题PTA提交列表(要提交列表,不是结果)

2.设计思路

1.int n,i,j,n为菱形高度,i,j为循环变量
2.读取n
3.for(i=1;i<=n/2+1;i++)上半部分的行数
for(j =((n+1)-2i);j>0;j--)
printf(“ ”)打印每行的空格
for(j=1;j<=2
I-1;j++)
printf("* ") 打印每行的星
打印一个转行符
4.for(i=1;i<= n/2;i++)下半部分的行数
for(j=1;j<=n/2;j++)
printf(“ ”);打印空格
for(j=1;j<=n-2I;j++)
printf(“
”);打印星
打印一个转行符
5.结束程序

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

本题主要需要找到每行的前面的空格数的规律。

题目2. 掉入陷阱的数字

1.本题pta提交列表

2.设计思路

1.定义一个整型变量n表示输出的数字,I=1为循环变量,res为返回数、
2.输入一个数字n
3.for(;;)不需要条件 单纯利用其循环性
res =cal(n)调用函数cal()
①.int sum =0 保存各位的数之和
②.while(n> 0)
sum +=n%10 计算各位数之和
③n/=10 去掉个位上的数 返回2
④.返回值为 sum*3+1
4.printf(i++,res \n)i为输出格式
5.如果n =res 跳出循环
6.n =res 然后返回3继续循环

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

一开始没用函数 感觉写法会很麻烦 浪费了我一些时间

题目3.判断合法标识符

1.本题PTA提交列表

2. 设计思路

1.int repeat,flag,repeat表示输入次数 char op 存放标识符
2.输入 repeat
3.while(repeat不为0)
4.repeat自减
5.输入op ,利用getchar 读首字母
6.if(o属于 a和z A和Z 下划线的范围)
flag=1
7.do{
继续用getchar读取字符放入op
if(op 属于a-z A-Z 下划线 0-9 和‘\n’)
continue
否则 flag=0
} while (op不等于'\n')
8.如果flag为1,输出yes
9.如果flag为0,输出no
10.如果不满足6的情况,继续输入直到遇到‘\n’,输出No,返回3
11.结束程序

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

在后面字符输入的时候我没有加上这个条件

这个条件的缺失会直接导致跳出循环并且flag的结果为0

二、截图本周题目集的PTA最后排名

三、本周学习总结

1.你学会了什么?

1.一维数组的定义和初始化和整型变量或其他类型的变量没有什么区别 例:int a[数组长度]={0,1}
2.一维数组在内存中的结构是连续的,线性的。数组名是一个指针并且指向数组的第一个元素。
3.数组是同类数据的集合,使用它会让程序变得简单,并且避免了定义多个变量来储存数据
4.选择法:选择排序法: 1输入n,数组a[n]
2.for(k=0;k<n-1;k++){
index=k; //index用于存放最小值所在下标
for(i=k+1;i<n;i++) //寻找最小值所在下标
if(a[i]<a[index])
index=i
temp=a[index];a[index]=a[k];a[k]=temp; } //最小元素与下标为k的元素交换
3.依次输出n个数组元素的值
冒泡法: for(i=0;i<N;i++) 
   scanf("%d",&a[i]); 
  for(i=N-2;i>=0;i--) 
   for(j=0;j<=i;j++) 
  if(a[j]>a[j+1])//相邻两个元素两两相互比较 ,并且把较小的存放在前一个
  { 
  temp=a[j+1]; 
  a[j+1]=a[j]; 
  a[j]=temp; 交换数字
  } 
5.已经排序完成的数组,平分为两部分,判断查找数所在区间,再次平分数组,循环该步骤直到找到该数。区别在于二分法要求数组已经按顺序排列。
6.二维数组的定义:类型名 数组名 [行长度] [列长度] 初始化:例 int a[3][4] = {1,2,3,4,5,6};
7.数组转置:用嵌套循环遍历数组,如果i<j,就交换i,j的值,下三角:列小于行,上三角列大于行
8.二维数组一般应为在矩阵方面的问题上

2.本周的内容,你还不会什么

PTA的倒数第二个问题,没有完全的解决问题,在负号的问题上还没有找到解决方案,还有数组的应用还没大量的练习。本周的考试让人很失望啊,选择题的正确率太低,这说明自己的基础还没有掌握好,同时程序的阅读能力也有待提高。