第二次博客作业


针对中段测试的结果、新手赛的比赛情况,以及之前的课前预习、课中学习、和课后作业情况,回答如下问题:

1  目前自己学习中存在的薄弱的知识点具体有哪些?每个薄弱的知识点都是如何获知的,每个薄弱的知识点需要列举具体的例子说明。(5分)

2  从第五章函数到第七章数组的函数题和编程题(主要是在PTA)中选出至少一道你觉得比较有挑战的题(已解决且不是奇奇的题)。写出解题报告包括:(1)题目大意;(2)解题思路;(3)代码思路,比如画出流程图;(4)核心技术总结;(5)解题过程中存在的问题,以及如何得到解决的。(5分)

1、薄弱的知识点:(1)函数形参与实参传递不是很明白它的本质。

           比如放在指针那一块的时候,以数组名作实参,指针作形参时,被调函数里面就会乱写,将主函数里面有定义的数组拿来用

           此处的解决方法是翻书查阅以及问同学

          (2)排序方法如冒泡法、选择法、插入法顺序查找法、折半查找法

          (3)字符数组输出数组名时,则将字符串完全输出,而输出项是字符元素名时,则为数组元素中存放的字符

          

 

2.编写程序,从键盘输入 n (n<10)本书的名称和定价并存入结构数组中,查找并输出其中定价最高书的信息。

思路:在结构数组中存放书本的信息 然后查找比对出定价最高的书的下标,并将其信息输出

核心技术:结构体的定义 大小的比较 结构体信息的输出

问题:如何将带有空格的字符串存入,其本质是遇到空格时要将其存入缓存区 

   问题的解决 通过问同学 得知cin.getline 的同时需要将存入缓冲区的空格消去 以免存入下一组数据中

代码:

#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
struct student
{
char s[35];
double price;
};
int main()
{
int n, i, k=0, j=0;
student book[15];
cin>>n;
getchar();//输入缓冲区
for(int i = 0;i<n;i++)
{
cin.getline(book[i].s, 35);//gets遇到空格不返回,cin,scanf遇空格返回
cin>>book[i].price;
getchar();
}
double mix=0;
double max=0;
for(i=0;i<n;i++)
{
if(book[i].price>max)
{
max=book[i].price;
j=i;
}
}
cout<<"highest price: "<<fixed<<setprecision(1)<<max<<", "<<book[j].s<<endl;
return 0;
}

posted @ 2018-12-07 20:02  Kayee1802  阅读(279)  评论(0编辑  收藏  举报