第二次作业
---恢复内容开始---
一、作业要求博客链接
【https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502】
二、PTA作业
1.函数6-3数字金字塔
1)实验代码
#include <stdio.h> void pyramid( int n ); int main() { int n; scanf("%d", &n); pyramid(n); return 0; } void pyramid (int n) { int i,j,k,m; m=n; for(i=1;i<=n;i++,m--) { j=m; for(j=m-1;j>0;j--) printf(" "); for(k=i;k>0;k--) printf("%d ",i); printf("\n"); } }
2)解题思路
A: 第一步:理解好题目中的变量 与函数的意义,正确运用函数;
第二步:输入整数n ,初次使用 定义函数 n;
第三步:调用函数,输入变量,利用for语句,运行函数;
第四步:输出结果 要求 每个数字之间留有空格。
B.流程图
3)本题调试过程碰到问题及解决办法
a.存在的编译错误,未能完全理解题目
b.调试断点中,最后输出结果应留有空格,在最后一步的 printf("%d",i)改为printf("%d ",i);
2.数组1.7-4最大值与次大值
1)实验代码
#include<stdio.h> int main() { int i; int max,cmax,a[10]; for(i=0;i<10;i++) { scanf("%d ",&a[i]); } max=cmax=a[0]; for(i=0;i<10;i++) { if(max<a[i]) { //printf("a-\n"); max=a[i]; } } for(i=0;i<10;i++) { if((cmax<a[i])&&(a[i]<max)) { cmax=a[i]; } } printf("max=%d,cmax=%d",max,cmax); return 0; }
2)解题思路
A.第一步:输入整数i,最大值表达函数max,次大值函数cmax,数组个数a[10];
第二步:设置循环变量,利用if语句进行循环;
第三步:确定好最大值 与 次大值的函数表达方式,输出结果。
B.流程图
3)本题调试过程碰到问题及解决办法
a.在输出部分未留有空格,应在scanf("%d ")留有空格
b.在尝试断点时 ,无空格无错误,可以输出。
3.数组2.7-1插入排序
1)实验代码
#include <stdio.h> int main() { int n,i,j,x,a[10]; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); scanf("%d",&x); i=0; while(a[i]<x&&i<n) i++; for (j=n-1;j>=i;j--) { a[j+1]=a[j]; } a[i]=x; for(i=0;i<n+1;i++) printf("%d ",a[i]); return 0; }
2)解题思路
A.第一步:输入函数变量n,i,j,x,以及数组个数a[10];
第二步:定义数组,开始让i=0,利用while语句进行循环;
第三步:在while语句中增加for语句,进行二次循环:
第四步:最后输出结果a[i].
B.流程图
3)本题调试过程碰到问题及解决办法
a.编译错误,由于一些字母未能定义,出现了新的字母,定义新的字母意义;
b.断点调试中,出现字母不匹配,更改字母表达含义;
c.显示scanf未留有空格,加空格。
三、个人总结
A.1.这几周主要认识到数组的含义,与运用,但是由于没有理解完全,致使一些知识点不能更好地运用 出现错误;
2.除于课上,自己在社团中还接触到python,数据库等的学习。
B.1课上学到的 最难点我认为就是数组的认识,在困难的代码中 不知在哪里入手。
2.在以后的学习中更好的去理解,去网上寻找资源,查看课本,去图书馆借阅书籍等。
四、互评与学习进度
1.点评
2.折线图
表格