程序清单6.2

#include<iostream>
using namespace std; void main() {
char ch;
cout << "Type, and I shall repeat.\n";
cin.get(ch);
while(ch != '.')
{
if (ch == '\n')
cout << ch;
else
cout << ++ch;
cin.get(ch);
}
system("pause");
}

程序清单6.5

#include<iostream>
using namespace std; const int Size = ;
void main() {
float naaq[Size];
int i = ;
float temp;
cout << "First value:";
cin >> temp;
while (i < Size&&temp >= ) {
naaq[i] = temp;
++i;
if (i<Size)
{
cout << "Next value:";
cin >> temp;
}
}
if ( == i)
cout << "No data!" << endl;
else {
cout << "Enter your NAAQ:";
float you;
cin >> you;
int count = ;
for (int j = ; j < i; j++)
{
if (naaq[j] > you)
++count;
}
cout << count << "个数字比你的大" << endl;
}
system("pause");
}

程序清单6.8(字符函数库cctype)

#include<iostream>
#include<cctype>
using namespace std; void main() {
cout << "Enter text for analysis,and type @ to terminate input."<<endl;
char ch;
int space = , digit = , chars = , punct = , others = ; cin.get(ch);
while (ch!='@')
{
if (isalpha(ch)) chars++;
else if (isspace(ch)) space++;
else if (isdigit(ch)) digit++;
else if (ispunct(ch)) punct++;
else others++;
cin.get(ch);
}
cout << chars << " letters,"
<< space << " whitespace,"
<< digit << " digit,"
<< punct << " punctuations,"
<< others << " others." << endl;
system("pause");
}

程序清单6.13

#include<iostream>
using namespace std;
const int Max = ;
void main() {
double fish[Max];
cout << "Enter the weights of your fish.\nYou may enter up to " << Max << " fish<q to terminate>." << endl;
cout << "fish #1: ";
int i = ;
while (i<Max&&cin >> fish[i])
{
if (++i < Max)
cout << "fish #" << i + << ": ";//i+1和++i不同,i+1对i的值没有影响
}
double total = 0.0;
for (int j = ; j < i; j++)//i=5
total += fish[j];
if (i == )
cout << "No fish!" << endl;
else
cout << total / i << "=average weight of " << i << " fish" << endl;
system("pause");
}

根据自己的习惯重新编写

#include<iostream>
using namespace std;
const int Max = ;
void main() {
double fish[Max],sum=;
cout << "Enter the weights of your fish.\nYou may enter up to " << Max << " fish<q to terminate>." << endl;
int i;
for (i = ; i < Max; i++)
{
cout << "fish #" << i + << ": ";
if (cin >> fish[i])//输入成功返回true
sum += fish[i];
else
break;
}
if (i == )
cout << "No fish!" << endl;
else
cout << sum/i<< "=average weight of " << i << " fish" << endl;
system("pause");
}

程序清单6.14

#include<iostream>
using namespace std;
const int Max = ;
void main() {
double golf[Max],sum=;
cout << "Enter your golf scores.\nYou must enter " << Max << " rounds." << endl;
int i;
for (i = ; i < Max; i++)
{
cout << "round #" << i + << ": ";
while (!(cin>>golf[i]))
{
cin.clear();
while (cin.get() != '\n')
continue;
cout << "Please enter a number:";
}
sum += golf[i];
}
cout << sum/Max<< "=average score " <<Max<< " rounds" << endl;
system("pause");
}

程序清单6.15(文本I/O)

//文件输出(对程序而言)

#include<iostream>
#include<fstream>
using namespace std; void main() {
char automobile[];
int year;
double a_price, d_price; //声明ofstream对象并将其同文件关联起来
ofstream outFile;
outFile.open("first.txt"); cout << "Enter the make and model of automobile:";
cin.getline(automobile, );//cin.getline:不断读取,直到遇到换行符(少于50个字符),在末尾加上一个空字符,换行符被丢弃
cout << "Enter the model year:";
cin >> year;
cout << "Enter the original asking price:";
cin >> a_price;
d_price = 0.913*a_price; cout << fixed;//表示用一般的方式输出浮点数,比如num=0.00001,cout输出为1e-005,加了fixed后再输出就为0.000010
cout.precision();//第一位精确,第二位四舍五入,比如num = 318.15,precision(2)为3.2e+02,precision(4)为318.2
cout.setf(ios_base::showpoint);//强制显示小数点
cout << "Make and model: " << automobile << endl;
cout << "Year: " << year << endl;
cout << "Was asking $" << a_price << endl;
cout << "Now asking $" << d_price << endl; outFile << fixed;
outFile.precision();
outFile.setf(ios_base::showpoint);
outFile << "Make and model: " << automobile << endl;
outFile << "Year: " << year << endl;
outFile << "Was asking $" << a_price << endl;
outFile << "Now asking $" << d_price << endl; outFile.close();
system("pause");
}

程序清单6.16

//文件读入(对程序而言)

#include<iostream>
#include<fstream>//文件I/O
#include<cstdlib>//exit()
using namespace std;
const int SIZE = ; void main()
{
char filename[SIZE];
ifstream inFile;//声明ifstream对象
cout << "Enter name of data file:";
cin.getline(filename, SIZE);
inFile.open(filename);//关联文件 if (!inFile.is_open())//文件打开失败
{
cout << "Could not open the file " << filename << endl;
exit(EXIT_FAILURE);
}
double value, sum = 0.0;
int count = ; inFile >> value;
while (inFile.good())//输入正确
{
++count;
sum += value;
inFile >> value;
}
if (inFile.eof())
cout << "End of file reached." << endl;
else if (inFile.fail())
cout << "Input terminated by data misamatch." << endl;
else
cout << "Input terminated for unknown reason." << endl;
if (count == )
cout << "No data processed." << endl;
else {
cout << "Items read: " << count << endl;
cout << "Sum: " << sum << endl;
cout << "Average: " << sum / count << endl;
}
inFile.close(); system("pause");
}

要想正确运行,首先在源代码文件夹中创建一个包含double数字的文本文件。

为何会少了最后一个数字17.5呢?

在文本文件中,输入最后的文本17.5后应该按下回车键,然后再保存文件。

[C++ Primer Plus] 第6章、分支语句和逻辑运算符(一)程序清单的更多相关文章

  1. C++ primer plus读书笔记——第6章 分支语句和逻辑运算符

    第6章 分支语句和逻辑运算符 1. 逻辑运算符的优先级比关系运算符的优先级低. 2. &&的优先级高于||. 3. cctype中的函数P179. 4. switch(integer- ...

  2. C++ Primer Plus 6th 读书笔记 - 第6章 分支语句和逻辑运算符

    1. cin读取错误时对换行符的处理 #include <iostream> using namespace std; int main() { double d; char c; cin ...

  3. [C++ Primer Plus] 第7章、函数(一)程序清单——递归,指针和const,指针数组和数组指针,函数和二维数组

    程序清单7.6 #include<iostream> using namespace std; ; int sum_arr(int arr[], int n);//函数声明 void ma ...

  4. c++primerplus(第六版)编程题——第6章(分支语句和逻辑运算符)

    声明:作者为了调试方便,每一章的程序写在一个工程文件中,每一道编程练习题新建一个独立文件,在主函数中调用,我建议同我一样的初学者可以采用这种方式,调试起来会比较方便. (具体方式参见第3章模板) 1. ...

  5. [C++ Primer Plus] 第6章、分支语句和逻辑运算符(二)课后习题

    一.复习题 3. #include<iostream> using namespace std; void main() { char ch; int c1, c2; c1 = c2 = ...

  6. C++ Primer Plus读书笔记(六)分支语句和逻辑运算符

    1. 以上均包含在cctype中 1 #include<cctype> 2 //#include<ctype.h> 2.文件操作 (1)头文件 1 #include<fs ...

  7. 重拾c++第三天(6):分支语句与逻辑运算符

    1.逻辑运算符 && || ! 2.关系运算符优先级高于逻辑运算符 3.cctype库中好用的判断 4. ?:符号用法: 状态1?结果1:结果2 5.switch用法: switch ...

  8. 《C++ Primer Plus》读书笔记之四—分支语句和逻辑操作符

    第六章 分支语句和逻辑操作符 1.&&的优先级低于关系操作符. 2.取值范围:取值范围的每一部分都使用AND操作符将两个完整的关系表达式组合起来: if(age>17&& ...

  9. JavaSE教程-03Java中分支语句与四种进制转换

    一.分支语句 计算机源于生活,程序模拟现实生活,从而服务生活 行为模式 1,起床,刷牙,洗脸,吃早餐,上课,回家,睡觉(顺序性) 2,如果时间不太够,打个滴滴快车,如果时间够,坐个地铁(选择性) 3, ...

随机推荐

  1. LPVOID 没有类型的指针

    可以将LPVOID类型的变量赋值给任意类型的指针,比如在参数传递时就可以把任意类型传递给一个LPVOID类型为参数的方法,然后在方法内再将这个“任意类型”从传递时的“LPVOID类型”转换回来. 示例 ...

  2. swust oj 1068

    图的按录入顺序深度优先搜索     5000(ms)         10000(kb)   Tags: 深度优先     图的深度优先搜索类似于树的先根遍历,即从某个结点开始,先访问该结点, 然后深 ...

  3. 黑盒测试实践——day01

    一.任务进展情况 小组成员讨论了测试案例的选取以及测试工具的选取,目前正在设计合理的测试方法,研究待测试系统的功能需求和缺陷. 二.存在的问题 测试工具的使用还是不很清楚. 三.解决方法 通过上网搜集 ...

  4. Python学习之旅(十九)

    Python基础知识(18):面向对象高级编程(Ⅰ) 使用__slots__:限制实例的属性,只允许实例对类添加某些属性 (1)实例可以随意添加属性 (2)某个实例绑定的方法对另一个实例不起作用 (3 ...

  5. 转载http协议

    转载自:https://blog.csdn.net/weixin_38051694/article/details/77777010 1.说一下什么是Http协议 对器客户端和 服务器端之间数据传输的 ...

  6. git版本控制工具

    git 基本操作 1.git init 在一个文件夹下执行该命令,对该文件夹下的内容进行管理.在该文件夹下会创建一个隐藏的目录.git 2.git status 查看文件夹下内容的状态,没有更改的则什 ...

  7. python练习题-员工信息表

    周末大作业:实现员工信息表文件存储格式如下:id,name,age,phone,job1,Alex,22,13651054608,IT2,Egon,23,13304320533,Tearcher3,n ...

  8. byte转bit

    由于项目需要,传过来的数据是高位到低位的Byte,需要输出低位到高位的bool数组. public static bool[] getBits(byte[] byt) { bool[] ret = n ...

  9. Ethzasl MSF源码阅读(2):百川汇海

    这里有个感觉,就是百川汇海.即IMU数据和相机的消息数据都汇集到msf_core进行处理.接上一篇, 1. 查看IMUHandler_ROS::IMUCallback和IMUHandler_ROS:: ...

  10. string和int的相互转换方法

    string转为int string str = "100000"; stringstream ss; ss << str; int i; ss >> i; ...