C语言博客作业04--数组

1.本章学习总结

1.1 思维导图

1.2 本章学习体会及代码量

1.2.1 学习体会

1.本章学习了数组,了解了数组的作用,以及数组的功能。
2.知道了数组的各个组成部分以及各个部分的作用以及功能。
3.越来越感到c语言学习的困难,有时候做题会毫无思路,解决一道题目往往需要花费很长的时间。
4.在不断增加自己的代码量,让自己能够赶上讲课的进度我觉得自己在C语言的学习上应该要更加努力了。
5.要认真看c语言的课本了,课本上有很多老师没讲到的基础知识,我觉得这些对于我们入门c语言是很重要的。

1.2.2 代码累计

2.PTA总分

2.1截图
2.2 我的总分

一维数组:分
二维数组:分
字符数组:分
总分:分

  1. 实验作业

3. 实验作业

3.1 PTA题目1

将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。

3.1.1 算法分析
1.定义数组a,定义存放数组的变量temp,定义整数n,i,j
2.冒泡排序法的原理是重复走访要排序的元素列,依次比较两个元素的大小,如果它们的顺序错误就把它们交换过来。
int i,j,k,n,temp,a[1010]
输入 n k
for  i=0 i<k i++  do
 输入 a[i]
end for
for  i=0 i<k i++  do
 for j=0 j<n-i-1 j++  do 
  if  a[j]>a[j+1]  do
   temp=a[j+1]; a[j+1]=a[j]; a[j]=temp  //交换数组元素
  end if
 end for
end for
for  i=0 i<n i++  do
 输入 a[i]
 if i+1 不等于 n  do
  输入 ' '
 end if
end for

3.1.2 代码截图

3.1.3 PTA提交列表及说明

说明:1.刚开始不清楚段错误的意思,后来才知道是因为数组定义出了问题。

3.2 PTA题目2

用二分法在一个有序数列{1,2,3,4,5,6,7,8,9,10}中查找key值,若找到key则输出其在数组中对应的下标,否则输出not found。

3.2.1 算法分析
1.首先定义变量key,flag,b,i,a[11]
2.本题需要用循环找出输入的数在数组中对应的下标
int key ,flag ,b ,i ,a[11]
输入 key
for  i=0 i<10 i++  do
 a[i]=i+10
end for
for  i=0 i<10 i++  do
 if  a[i]=key  do
  b=i  flag=1  break
 end if
 fiag=0
end for
if  flag=1  do
 输出 weizhi: b
end if
else
 输出 not found
end

3.2.2 代码截图

3.2.3 PTA提交列表及说明

说明:这一题相对比较简单,所以在几次调试后就没有遇到什么问题。

3.3 PTA题目3

打印n行杨辉三角,n<10。

3.3.1 算法分析
1.本题三角形的外围都是1,所以可以先将三角形的外围输出,再将内部输出
int a[11][11] n i j 
输入 n
for  i=0 i<n i++  do
 a[i][0]=1   a[i][i]=1//输出三角形外围
end for
for  i=2 i<n i++  do
 for  j=1 j<i j++  do
  a[i][j]=a[i-1][j-1]+a[i-1][j]
 end for
end for
for  i=0 i<n i++  do
 for  j=0 j<i j++  do
  输出 a[i][j]
 end for
 输出  "
"
end for

3.3.2 代码截图

3.3.3 PTA提交列表及说明

说明:这一题其实并不难,但是忽略了很多细节。刚开始输出时空格没注意,导致格式错误,之后发现算式计算错误,导致结果出错。

原文地址:https://www.cnblogs.com/2084624983yue/p/9926713.html