第二次作业

要求一

[https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_3/homework/2503]

要求二

判断奇偶性

1.实验代码

int even (int n)			
{										
	if(n%2 == 0) 	
		return 1;	
	else		
		return 0;
}	

2.解题思路
(1)算法
第一步:定义判断奇偶性的函数even(int n)。
第二步:输入n。
第三步:当n%2为0时,返回真;当n%2不为0时,返回假。
第四步:当返回真时输出"%d is even.\n",当返回假时输出"%d is odd.\n"。
(2)流程图

3.本题调试过程碰到问题及解决办法
(1)错误提示截图

(2)单步调试截图

(3)遇到的问题及解决办法
代码编写没有错误,但是在pta提交的时候没有注意函数接口定义,于是出现了编译错误,将定义的接口之前的部分代码去掉后提交就正确了。

交换最小值和最大值

1.实验代码

#include<stdio.h>
int main()
{
	int i, n, index, a[10], c, d, min, max;
	scanf("%d", &n);
	for(i = 0; i < n; i ++)
	{
		scanf("%d", &a[i]);
	}
	min = max = a[0];
	for(i = 0; i < n; i ++)
	{
		if(a[i] <= min)
		{
			min = a[i];
			index = i;
		}
	}
	c = a[0]; 
	a[0] = min; 
	a[index] = c;
	for(i = 0; i < n; i ++)
	{
		if(a[i] >= max)
		{
			max = a[i];
			index = i;
		}
	}
	d = max; 
	a[index] = a[n - 1]; 
	a[n - 1] = d;
	for(i = 0; i < n; i ++)
	{
		printf("%d ", a[i]);
	}
	return 0;
 } 

2.解题思路
(1)算法
第一步:定义变量i, n, index, c, d, min, max以及数组a[10]。
第二步:第一行中输入一个正整数N(≤10),第二行给出N个整数。
第三步:用比较的方法寻找最小值和最大值,将找到的最小值与数组的第一个数进行交换,然后将找到的最大值与数组中的最后一个数交换。
第四步:输出交换后的整数序列。
(2)流程图

3.本题调试过程碰到问题及解决办法
(1)错误提示截图

(2)单步调试截图

(3)遇到的问题及解决办法
为段错误。在进行比较的过程中出现取值范围错误,将比较中的"<"和">"分别改为"<="和">="即正确。

选择法排序

1.实验代码

#include<stdio.h>
int main(void)
{
  int i, index, k, temp;
  int a[10];         
  for(i = 0; i < 10; i++)		  
	{
		scanf("%d", &a[i]);
	} 
  for(k = 0; k < 3; k++)
  {
    index = k;						
    for(i = k + 1; i < 10; i++)
    {
    	if(a[i] < a[index])  
			{
				index = i; 
			}
		}     
  temp = a[index];			
  a[index] = a[k];
  a[k] = temp;
  }
  for(i = 0; i < 10; i++)  
	{
		printf("%5d", a[i]);
	}       
  return 0;
} 

2.解题思路
(1)算法
第一步:定义变量i, index, k, temp以及数组a[10]。
第二步:输入十个无序整数。
第三步:题目要求排序只排三轮,因此条件k<3。
第四步:输出变化后的数组。

注意:注意格式要求每个整数输出占5列。
(2)流程图

3.本题调试过程碰到问题及解决办法
(1)错误提示截图

(2)单步调试截图

(3)遇到的问题及解决办法
一开始没有注意到题目排三轮的要求,后来将条件"k<9"改为"k<3",答案正确。

要求三

个人总结

(1)学到的内容:这几周主要学习了函数和数组,主要包括了寻找最大值和最小值,数字金字塔,冒泡排序法,选择排序法等题型。
收获:我学会了运用数组寻找最大值最小值,还学会了用两种方法排序。通过学习我知道了如何定义排序轮数,以及整数输出占五列用"%5d"。
(2)对于我来说,刚刚接触数组的时候,排序问题是一个难点,通过课上听讲以及课下查找资料,我慢慢地理解了排序的思路,并学会了定义排序的次数。在做作业的时候,数组流程的的绘画也成了我的一大难关,但我希望通过上网查找资料,我能够攻克这个难题。

要求四

互评和学习进度

1.我点评的作业
谢雨欣
佟雨轩
孙凯
2.表格与折线图

posted @ 2018-12-20 18:32  魏璇  阅读(193)  评论(10编辑  收藏  举报