Accelerated C++:Practical Programming by Example第3章:使用批量数据
来源:互联网 发布:日本经济数据怎么找 编辑:程序博客网 时间:2024/05/20 23:36
#include<iostream>#include<string>#include<iomanip>//定义控制器setprecision,用于指明输出包含的位数#include<ios> //定义类型streamsize,表示长度using namespace std;int main(){cout<<"Please enter your first name:";string name;cin>>name;cout<<"Hello,"<<name<<"!"<<endl;cout<<"Please enter your midterm and final exam grades:";double midterm,final;cin>>midterm>>final;cout<<"Note that you must provide the end-of-file character when you're finished typing—typically, Ctrl-D"<<endl;cout<<"请注意,您在结束键入时必须提供文件结束字符,通常为 Ctrl+D,也可以是Ctrl+D。 ---有道词典"<<endl;cout<<"Please enter your homework grades:""followed by end-of-file:"; //多个成绩int count=0;double sum=0;double x; //录入多个成绩while(cin>>x){++count;sum+=x;}streamsize prec=cout.precision();cout<<"Your final grade is "<<setprecision(3)<<0.2*midterm+0.4*final+0.4*sum/count<<setprecision(prec)<<endl;return 0;}
将数据集合存储在向量vector中:
1.读取每一个输入数据并存储
2.排序
3.查找
例子:计算一组输入数据的中值
#include<algorithm> #include<iostream>#include<string>#include<iomanip>#include<vector>using namespace std;int main(){cout<<"请输入多个数字:";double x;vector<double> numbers; //定义一个向量,向量名为numbers, 类型为vector<double>,保存一组double类型的值// vector<string> character; 定义一个向量,向量名为character,类型为vector<string>, 保存一组string类型的值while(cin>>x) //利用while循环从标准输入流读取数值,numbers.push_back(x); //并存储在向量numbers.类似greeting.size(),push_back是一个成员函数。cout<<"您已输入"<<numbers.size()<<"个数字"<<endl; //push_back副作用:向量名.size()的值会+1.if(numbers.size()==0){cout<<endl<<"请重新输入。"<<endl;return 1; //表明程序运行失败}sort(numbers.begin(),numbers.end()); //sort函数定义在头文件<algorithm>int mid=numbers.size()/2;double median;median=(numbers.size()%2==0)?(numbers[mid]+numbers[mid-1])/2:numbers[mid];cout<<"中值为:"<<median<<endl;/*获取numbers的长度typedef vector<double>::size_type vec_sz; //vector类型定义了vector<double>::size_type类型和名为size的函数。使用size_type专门保存向量的最大长度,而int float是有范围的,//而且位数与系统环境相关。 vec_sz size=numbers.size();*/}
原版完整程序(有修改):
#include<algorithm>#include<iomanip>#include<ios>#include<iostream>#include<string>#include<vector>using namespace std;int main(){//输入输出问候语cout<<"Please enter your first name:";string name;cin>>name;cout<<"Hello,"+name<<"!"<<endl;//输入期中和期末成绩cout<<"Please enter your midterm and final exam grades:";double midterm,final;cin>>midterm>>final;//输入多个家庭成绩cout<<"Please enter your homework grades,""followed by end-of-file:";vector<double> homework;double x;while(cin>>x)homework.push_back(x); //至此,向量hoemework存放了多个家庭成绩//检查homework是否为空,为空说明没有输入数据,弹出警告typedef vector<double>::size_type vec_sz; //vector<double>::size_type 是无符号整数类型,不能存放负数,vector<double>类的对象会根据需要动态增长来容纳其输入。vec_sz size=homework.size();if(size==0){cout<<endl<<"You must enter your grades."<<"Please try again!"<<endl;return 1;}//对多个家庭成绩从大到小排序sort(homework.begin(),homework.end());//计算多个家庭成绩的中值medianvec_sz mid=size/2;double median;median=(size%2==0)?(homework[mid]+homework[mid-1])/2:homework[mid];//输出总成绩streamsize prec=cout.precision();cout<<"Your final grade is "<<setprecision(3)<<0.2*midterm+0.4*final+0.4*median<<setprecision(prec)<<endl;return 0;}
3-2:
#include<iostream>#include<string>#include<vector> //使用vector类型#include<algorithm> //使用sortusing namespace std;int main(){cout<<"请输入4的倍数个整数,CTRL+D结束:";vector<double> test;double x;while(cin>>x){test.push_back(x);}typedef vector<double>::size_type vec_sz;vec_sz size=test.size();if(size==0){cout<<"输入数据为空!"<<endl;return 1;}sort(test.begin(),test.end());cout<<"输入数据从小到大:";for(vec_sz i=0;i<size;++i){cout<<test[i]<<" ";}cout<<"\n";//cout<<"第1部分:";for(vec_sz i=size/4*3;i<size;++i){cout<<test[i]<<" ";}cout<<"\n";//cout<<"第2部分:";for(vec_sz i=size/2;i<size/4*3;++i){cout<<test[i]<<" ";}cout<<"\n";//cout<<"第3部分:";for(vec_sz i=size/4;i<size/2;++i){cout<<test[i]<<" ";}cout<<"\n";cout<<"第4部分:";for(vec_sz i=0;i<size/4;++i){cout<<test[i]<<" ";}cout<<endl;}
3-4: 不会 编写一个程序计算它的输入中每个不同单词
3-5:
#include<iostream>#include<string>#include<vector>using namespace std;int main(){cout<<"输入姓名:";string x;cin>>x;cout<<"输入多个分数:";vector<double> grade;double y;int count=0;double sum=0;while(cin>>y){grade.push_back(y);sum+=y;++count;}cout<<"姓名:"<<x<<",平均分为"<<sum/count<<endl;return 0;}
收藏:
把c++的输入输出整理 - rainkin的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/rainkin1993/article/details/8441611
0 0
- Accelerated C++:Practical Programming by Example第3章:使用批量数据
- 【记录】Accelerated C++:Practical Programming by Example第1章:使用字符串
- 【记录】Accelerated C++:Practical Programming by Example第0章:开始学习C++
- 【记录】Accelerated C++:Practical Programming by Example第2章:循环和计数
- Practical C Programming - Chapter 3
- Practical Programming in C
- 第3章 使用批量数据
- 第3章 使用批量数据
- Accelerated C++学习笔记4—<使用批量数据>
- Accelerated c++学习笔记 chapter3 ----使用批量数据
- <Practical C Programming> chapter 4
- Practical C Programming - Chapter 2
- Practical C Programming - Chapter 4
- Practical C Programming - Chapter 5
- Practical C Programming - Chapter 9
- Practical C Programming - Chapter 10
- Programming Game AI By Example
- LINUX SOCKET programming by Example
- 懒人服务器 - 教程三、了解如何应用(服务器端)
- android:layout_gravity和android:gravity属性的区别
- 留在心里的伤
- 项目管理案例精选
- The Knuth-Morris-Pratt
- Accelerated C++:Practical Programming by Example第3章:使用批量数据
- C#接口基础
- 沁园春·咏史
- C和C++ 的基本问题
- ssh远程登录linux live系统
- 【学习笔记】解析XML文档--使用libxml
- 哈弗曼树的实现
- Http协议网络对时工具
- POJ 1316 Self Numbers