第二次作業


要求一

[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.表格與折線圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM