1. PTA习题编程过程
一.7-4 交换最小值和最大值
1. 实验代码
#include<stdio.h>
int main () {
int i,a[10]={0},n,t,min,max,m;
scanf("%d",&n);
for(i=0;i<n;i=i+1){
scanf("%d",&a[i]);
}
int x=a[0];
for(i=0;i<n;i=i+1){
if(a[i]<x){
x=a[i];
min=i;
}
else{
x=x;
min=min;
}
}
if(x!=a[0]){
t=a[0];
a[0]=a[min];
a[min]=t;}
int d=a[n-1];
for(i=0;i<n;i=i+1){
if(a[i]>d){
d=a[i];
max=i;
}
else{
d=d;
max=max;
}
}
if(d!=a[n-1]){
m=a[n-1];
a[n-1]=a[max];
a[max]=m;}
for(i=0;i<n;i=i+1){
printf("%d ",a[i]);
}
return 0;
}
2. 设计思路
- 第一步 先通读题目了解要打的代码的意思,思考计算方法。
- 第二步 因为是仅交换最大值和最小值的位置,所以冒泡排序pass,选择选择排序。
- 第三步 因为需要保证交换前与交换后之间的数字保持不变,所以使用两次选择排序,保证最大值与最小值的位置正确。
- 第四步 输出运算结果。
3. 流程图
4. 本题调试过程碰到问题及解决办法
问题:一开始理解错题意,使用了冒泡循环,导致结果错误。
问题截图:
- 解决方法:询问同学,理解题意以后,改用选择循环,至答案正确。
5.提交列表
二. 7-1 数组中偶数的和
1. 实验代码
#include <stdio.h>
int main (){
int a[10];
int i=0,sum=0;
scanf("%d",&a[0]);
if(a[0]%2==0){
sum=a[0];
}
for(i=1;i<=9;i++){
scanf("%d",&a[i]);
if(a[i]%2==0){
sum=sum+a[i];
}
}
printf("s=%d",sum);
return 0;
}
2. 设计思路
- 第一步 先通读题目了解要打的代码的意思,思考计算方法。
- 第二步 使用循环语句,判断是否为偶数,累加。
- 第四步 输出sum的值。
3. 流程图
4. 本题调试过程碰到问题及解决办法
问题:没有初始化,导致答案错误。
问题截图:
- 解决方法:使用调试功能,逐步进行,发现错误,改正,使其初始化。
5.提交列表
要求四
上传成功后coding.net项目的截图:
地址:https://git.coding.net/singal/test.git
要求五
个人总结
(1)本周你学习了哪些内容?收获了什么?
- 本周学习了数组,冒泡循环,选择循环,如何初始化数组,如何定义数组长度,数组的使用方法,二维数组与一维数组。
- 收获了使用数组的方法,明白了使用数组的便捷。
(2)本周所学内容中你觉得哪些是难点?有哪些知识点还不明白? - 我认为冒泡循环和选择循环的本阶段的难点。
- 目前并无知识点不明白。
要求六
互评和学习进度
1、三个同学的博客地址:
刘泽华: http://www.cnblogs.com/liuzehua123/p/7905557.html
汪志恒: http://www.cnblogs.com/wangzhiheng/p/7967143.html
马天琦: http://www.cnblogs.com/simalang/p/7965750.html
2、请用表格和折线图呈现你本周(11/9 13:00~11/19 8:00)的代码行数和时间、博客字数和时间、涉及的知识点