第14、15教学周作业

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)的代码行数和时间、博客字数和时间、涉及的知识点

posted on 2017-12-03 20:49  Signal_LZQ  阅读(322)  评论(1编辑  收藏  举报