[C++ Primer Plus] 第6章、分支语句和逻辑运算符(一)程序清单
程序清单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章、分支语句和逻辑运算符(一)程序清单的更多相关文章
- C++ primer plus读书笔记——第6章 分支语句和逻辑运算符
第6章 分支语句和逻辑运算符 1. 逻辑运算符的优先级比关系运算符的优先级低. 2. &&的优先级高于||. 3. cctype中的函数P179. 4. switch(integer- ...
- C++ Primer Plus 6th 读书笔记 - 第6章 分支语句和逻辑运算符
1. cin读取错误时对换行符的处理 #include <iostream> using namespace std; int main() { double d; char c; cin ...
- [C++ Primer Plus] 第7章、函数(一)程序清单——递归,指针和const,指针数组和数组指针,函数和二维数组
程序清单7.6 #include<iostream> using namespace std; ; int sum_arr(int arr[], int n);//函数声明 void ma ...
- c++primerplus(第六版)编程题——第6章(分支语句和逻辑运算符)
声明:作者为了调试方便,每一章的程序写在一个工程文件中,每一道编程练习题新建一个独立文件,在主函数中调用,我建议同我一样的初学者可以采用这种方式,调试起来会比较方便. (具体方式参见第3章模板) 1. ...
- [C++ Primer Plus] 第6章、分支语句和逻辑运算符(二)课后习题
一.复习题 3. #include<iostream> using namespace std; void main() { char ch; int c1, c2; c1 = c2 = ...
- C++ Primer Plus读书笔记(六)分支语句和逻辑运算符
1. 以上均包含在cctype中 1 #include<cctype> 2 //#include<ctype.h> 2.文件操作 (1)头文件 1 #include<fs ...
- 重拾c++第三天(6):分支语句与逻辑运算符
1.逻辑运算符 && || ! 2.关系运算符优先级高于逻辑运算符 3.cctype库中好用的判断 4. ?:符号用法: 状态1?结果1:结果2 5.switch用法: switch ...
- 《C++ Primer Plus》读书笔记之四—分支语句和逻辑操作符
第六章 分支语句和逻辑操作符 1.&&的优先级低于关系操作符. 2.取值范围:取值范围的每一部分都使用AND操作符将两个完整的关系表达式组合起来: if(age>17&& ...
- JavaSE教程-03Java中分支语句与四种进制转换
一.分支语句 计算机源于生活,程序模拟现实生活,从而服务生活 行为模式 1,起床,刷牙,洗脸,吃早餐,上课,回家,睡觉(顺序性) 2,如果时间不太够,打个滴滴快车,如果时间够,坐个地铁(选择性) 3, ...
随机推荐
- lis最长上升子序列
因为是最长上升的,可以用一个数组储存上升的序列,如果后一个数字比数组的最大数字还大,就加到末尾去,如果不大于,那么就可以把这个数组中比他大的数字替换掉,因为如果数字更小,后面上升序列更长的可能性更大, ...
- ConfuserEx壳
前言: 这几天用Rolan的时候出现了点问题,然后发现了这个非常好用的工具居然只有几百k,打算逆向一下,然后发现了ConfuserEx壳 探索: Rolan是用C#写的,刚开始用EXEinfoPE打开 ...
- 网页中顶部banner图自适应css
//test.css .index-banner-top { width: 100%; background: url(../imgs/guanyu.png) no-repeat center cen ...
- 下载JDK开发工具包
实例说明 开发java程序必须有Java开发环境,即jdk开发工具包,这个工具包包含了编译.运行.调试等关键的命令.运行Eclipse.NetBeans等开发工具也需要有jdk或jre的支持. 关键技 ...
- vue里的样式添加之类名改动 和style改动
类名下有不同样式,通过增加或者减少类名,来增加或减少样式. v-bind:class = {类名:变量,类名:变量...} 变量为布尔值,如果是true则类名添加,反正类名不添加到该元素身上 v-b ...
- java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络]
java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络] 地址:http://blog.csdn.net/allgis/article/details/46364875
- Codeforces 1114 - A/B/C/D/E/F - (Undone)
链接:http://codeforces.com/contest/1114 A - Got Any Grapes? 题意:甲乙丙三个人吃葡萄,总共有三种葡萄:绿葡萄.紫葡萄和黑葡萄,甲乙丙三个人至少要 ...
- [AI][tensorflow][keras] archlinux下 tersorflow and keras 安装
tensorflow TensorFlow is an open-source machine learning library for research and production. https: ...
- MAVEN_day03 整合SSH框架
一.整合SSH工程环境准备 1.创建MAVEN工程>>添加>>"web.xml"文件解决工程红色叹号. new Maven Project>>在 ...
- __call__方法和Flask中 first_or_404
1.__call__方法: 在一个类的实例中,函数一般都是可调用的对象: __call__方法时魔法方法,该方法允许程序员创建可调用的对象(实例),默认情况下是不会触发,也就是说,大多数实例是不可被调 ...