第二次博客作业
目前自己学习中存在的薄弱的知识点具体有哪些?每个薄弱的知识点都是如何获知的,每个薄弱的知识点需要列举具体的例子说明。(5分)
目前较为薄弱的知识点有函数的传值调用和指针数组。通过看书上例题和在PTA上做题的过程中上网查找资料来了解具体如何操作。例如,在完成函数的编写后,不是很确定如何在main函数中使用,总是会报错;指针数组中特别是二维数组的处理也不太清楚。
2 从第五章函数到第七章数组的函数题和编程题(主要是在PTA)中选出至少一道你觉得比较有挑战的题(已解决且不是奇奇的题)。写出解题报告包括:(1)题目大意;(2)解题思路;(3)代码思路,比如画出流程图;(4)核心技术总结;(5)解题过程中存在的问题,以及如何得到解决的。(5分)
Cpp9 7-2数组元素换位
(1) 在主函数中输入n个整数到数组中,调用函数(要求被调参数为⑴数组名 ⑵数组元素的个数)完成将数组中的最小值与第0个元素对调,将数组中的最大值与最后一个元素对调,主函数中输出调换后的数组。要求函数用指针变量作形参。
(2) 先判断出最大值和最小值,再进行调换。
(3)
#include <iostream>
using namespace std;
void sort(int a[],int n)
{
int i=n-1,j,k=0,z;
for(j=1;j<n;j++)
{
if(a[j]<a[k])
{
z=j;
j=k;
k=z;
}
}
if(k!=0)
{
z=a[k];
a[k]=a[0];
a[0]=z;
}
for(j=n-2;j>0;j--)
{
if(a[j]>a[i])
{
z=j;
j=i;
i=z;
}
}
if(i!=n-1)
{
z=a[i];
a[i]=a[n-1];
a[n-1]=z;
}
}
int main()
{
int a[100],n,i;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
sort(a,n);
for(i=0;i<n-1;i++)
cout<<a[i]<<" ";
cout<<a[n-1];
return 0;
}
(4) 用中间变量完成两个数组值的交换
(5)一开始没有考虑最大值的位置情况,在第一个和不是第一个元素的情况是不太一样的。通过上网查找资料和询问同学过后,解决了这个问题。