您的位置:首页 > 编程语言 > C语言/C++

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

2014-07-23 22:26 369 查看
一、

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 +=
9bae
*(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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息