成都网站建设 赢展,asp网站的配置,建设网站用模版,东莞阳光网目录
第一题#xff1a;计算平均成绩
第二题#xff1a;平面向量加法
第三题#xff1a;查找书籍
第四题#xff1a;通讯录排序
第五题#xff1a;计算职工工资 第一题#xff1a;计算平均成绩
思路#xff1a;看到一个学生的基本信息#xff0c;所以定义一个结构…目录
第一题计算平均成绩
第二题平面向量加法
第三题查找书籍
第四题通讯录排序
第五题计算职工工资 第一题计算平均成绩
思路看到一个学生的基本信息所以定义一个结构体变量然后呢不知道人数的多少这里用vector设立一个动态数组接着遍历所有的学生输入信息。将学生的成绩累加起来接着求解平均值。然后判断遍历输出即可
#include iostream
#include iomanip
#include vector
using namespace std;struct Student {string id;string name;int score;
};int main() {int N;cin N;vectorStudent students(N);double sum 0.0;for (int i 0; i N; i) {cin students[i].id students[i].name students[i].score;sum students[i].score;}double average sum / N;printf(%.2lf\n, average);for (int i 0; i N; i) {if (students[i].score average) {cout students[i].name students[i].id endl;}}return 0;
}
第二题平面向量加法
思路
简单定义见结构体变量最后if(fabs(v.x)0.05) 的判断是为了解决浮点数精度问题。在实际计算中由于浮点数的表示方式和计算精度的限制可能会导致一些微小的误差。因此当两个浮点数本应为零但实际上非常接近零时为了避免输出 -0.0 这样不符合要求的格式可以通过判断绝对值小于一个很小的阈值比如 0.05来将其修正为零。
#includestdio.h
#includemath.h
struct ping {double x;double y;
};
int main(){struct ping v,v1,v2;scanf(%lf%lf%lf%lf,v1.x,v1.y,v2.x,v2.y);v.xv1.xv2.x;v.yv1.yv2.y;if(fabs(v.x)0.05) v.xfabs(v.x);if(fabs(v.y)0.05) v.yfabs(v.y);printf((%.1f, %.1f),v.x,v.y);return 0;
}
第三题查找书籍
查找书籍
思路这个题的细节还是蛮多的。整体思路很简单定义结构体变量然后输入每本书的书名和价格但是要注意在输入书的价格的时候cin不读取最后的\n这里必须要把\n给处理掉这里在c可以用cin.ignore如果在c可以用getchar如果不处理那么\n一直在缓冲区那么下一次\n就会被geiline给读取影响结果。接着由于不知道最低价格多少我们就令第一本书为最低价然后遍历判断即可最后输出书名的时候也要注意格式如用printf输出string类型的时候必须在变量名后加.c_str()否则不能输出。 #include iostream
#include vector
#include stringusing namespace std;struct Book {string name;double price;
};int main() {int n;cin n;cin.ignore(); // 忽略第一个换行符vectorBook books(n);for (int i 0; i n; i) {getline(cin, books[i].name);cin books[i].price;cin.ignore(); // 忽略每个价格后面的换行符}double maxPrice books[0].price;double minPrice books[0].price;string maxBook books[0].name;string minBook books[0].name;for (int i 1; i n; i) {if (books[i].price maxPrice) {maxPrice books[i].price;maxBook books[i].name;}if (books[i].price minPrice) {minPrice books[i].price;minBook books[i].name;}}printf(%.2lf, %s\n, maxPrice, maxBook.c_str());printf(%.2lf, %s, minPrice, minBook.c_str());return 0;
}
第四题通讯录排序 思路
这个题的关键是要判断年龄的大小这里我们不要想复杂直接通过日期数的大小来判断数越小年龄越大。然后就是根据年龄大小来排序
#includebits/stdc.h
using namespace std;
struct friends {string name;int birthday;string phone;
};
bool comparebirthday(friends friend1, friends friend2);
int main()
{int n;cin n;vectorfriendslist(n);for (int i 0; i n; i){cin list[i].name;cin list[i].birthday;cin list[i].phone;}//sortsort(list.begin(), list.end(), comparebirthday);//shuchufor (int i 0; i n; i){cout list[i].name list[i].birthday list[i].phone endl;}return 0;
}
bool comparebirthday(friends friend1, friends friend2)
{return friend1.birthday friend2.birthday;
}
第五题计算职工工资
思路按步就班先定义后输入然后输出注意格式即可
#includebits/stdc.h
using namespace std;
struct salry
{string name;float gz1;float gz2;float zc;
};
int main()
{int n;cin n;vectorsalryworker(n);for (int i 0; i n; i){cin worker[i].name worker[i].gz1 worker[i].gz2 worker[i].zc;}vectorfloatsj(n);for (int i 0; i n; i){sj[i] worker[i].gz1 worker[i].gz2 - worker[i].zc;}for (int i 0; i n; i){printf(%s %.2lf\n, worker[i].name.c_str(), sj[i]);}return 0;
}