Visual C++ 2012入门经典(第6版) 课后练习(第04章)

来源:互联网 发布:最终幻想15 amd优化 编辑:程序博客网 时间:2024/05/19 05:31

一、

1.main.cpp

#include<iostream>using namespace std;int main(){int count(0);//当前有多少个数int max(5);//最多可有多少个数double* data = new double[max];//初始化一个大小为5的数组char sInput[20];//用于保存用户输入的数cout<<"Enter numbers(q to quit):"<<endl;while(true){cin>>sInput;//如果输入的是“q”,则终止输入if(strcmp("q",sInput) == 0)break;//保存输入的数data[count] = atof(sInput);count++;//如果数组已装满,则用大点的新数组装if(count == max){//保存旧数组指针double* oldData = data;//创建新数组max+=5;data = new double[max];//拷贝数据for(int i=0;i<count;i++){data[i] = oldData[i];}//删除旧数组指针分配的空间delete[] oldData;}}//保存输入值的总和double sum = 0.0;//输出所有数cout<<endl<<"All of the numbers:";for(int i=0;i<count;i++){if(i%5 == 0)cout<<endl;cout<< data[i] <<"\t";sum += data[i];}//输出平均值cout<<endl<<"Average:"<<endl<<static_cast<double>(sum/count)<<endl;return 0;}

二、

1.main.cpp

#include<iostream>using namespace std;int main(){int count(0);//当前有多少个数int max(5);//最多可有多少个数double* data = new double[max];//初始化一个大小为5的数组char* sInput = new char[20];//用于保存用户输入的数cout<<"Enter numbers(q to quit):"<<endl;while(true){cin>>sInput;//如果输入的是“q”,则终止输入if(strcmp("q",sInput) == 0)break;//保存输入的数*(data+count) = atof(sInput);count++;//如果数组已装满,则用大点的新数组装if(count == max){//保存旧数组指针double* oldData = data;//创建新数组max+=5;data = new double[max];//拷贝数据for(int i=0;i<count;i++){*(data+i) = *(oldData+i);}//删除旧数组指针分配的空间delete[] oldData;}}//保存输入值的总和double sum = 0.0;//输出所有数cout<<endl<<"All of the numbers:";for(int i=0;i<count;i++){if(i%5 == 0)cout<<endl;cout<< *(data+i) <<"\t";sum += *(data+i);}//输出平均值cout<<endl<<"Average:"<<endl<<static_cast<double>(sum/count)<<endl;return 0;}

三、

1.main.cpp

int main(){char words[20] = "This is a test.";for(auto& c : words){if(c>='a' && c<='z')c -= 32;}return 0;}

四、

1.main.cpp

#include<iostream>#include<time.h>using namespace std;int main(){//随机数种子srand((unsigned)time(nullptr));const int MAX(12);//初始化一个数组保存12个华氏温度(在32F到212F之间,即摄氏0到100度之间)double temp[MAX] = {0.0};for(auto& t : temp){t = (rand()%(2120-320+1)+320)/10.0;}//转换为摄氏温度for(auto& t : temp){t = (t-32)/1.8;}double dMax = temp[0];//最大温度double dMin = temp[0];//最小温度double dSum = 0.0;//所有温度之和//获取最大值和最小值for(auto t : temp){if(t > dMax)dMax = t;if(t < dMin)dMin = t;dSum += t;}//输出cout<<"Max temperature:"<<dMax<<endl;cout<<"Min temperature:"<<dMin<<endl;cout<<"Average temperature:"<< dSum/MAX <<endl;return 0;}


0 0