前两天有事情去了,没有好好学,之后要补回来
9-1
main.cpp

#include <string.h>
#include <iostream>
#include"golf.h"const int GolfSize = 3;
int main()
{golf ann;setgolf(ann, "Ann Birdfree", 24);showgolf(ann);golf andy;setgolf(andy);golf g[GolfSize];int j = 0;for (int i = 0; i < GolfSize; i++){j = setgolf(g[i]);if (j == 1)showgolf(g[i]);else if (j == 0)break;}return 0;
}

golf.h

const int Len = 40;struct golf
{char fullname[Len];int handicap;
};
void setgolf(golf& g, const char* name, int hc);int setgolf(golf& g);void handicap(golf& g, int hc);void showgolf(const golf& g);

golf.cpp

#include <string.h>
#include <iostream>
#include"golf.h"void setgolf(golf& g, const char* name, int hc)
{strcpy_s(g.fullname, name);g.handicap = hc;
}int setgolf(golf& g)
{using std::cout;using std::cin;cout << "Please enter fullname: \n";cin.getline(g.fullname, 50);if (!strcmp(g.fullname, ""))return 0;cout << "Please enter handicap: \n";cin >> g.handicap;cin.get();return 1;
}
void handicap(golf& g, int hc)
{g.handicap = hc;
}void showgolf(const golf& g)
{using std::cout;cout << "fullname: " << g.fullname << "\n";cout << "handicap: " << g.handicap << "\n";
}

9-2
需要用getline才能获取空行

#include <iostream>
#include<string>
using namespace std;void strcount(const string str);int main()
{string input;char next;cout << "Enter a line:\n";getline(cin, input);while (input != ""){strcount(input);cout << "Enter the next line (empty line to quit):\n";getline(cin, input);}cout << "Bye\n";return 0;
}void strcount(const string str)
{static int total = 0;int count = 0;cout << "\"" << str << "\" contains ";count = str.size();total += count;cout << count << " characters\n";cout << total << " characters total\n";
}

9-3
同样需要stcpy_s
(1)

#include <iostream>
#include <string>struct chaff
{char dross[20];int slag;
};int main()
{using namespace std;chaff* cf = new chaff[2];strcpy_s(cf[0].dross, "gugugu");cf[0].slag = 6;strcpy_s(cf[1].dross, "biubiubiu");cf[1].slag = 9;for (int i = 0; i < 2; i++){cout << "dross, slag: " << cf[i].dross << ", " << cf[i].slag << endl;}//delete cf;<buffer>指定的是静态内存,不需要用delete释放return 0;
}

(2)

#include <iostream>
#include <string>struct chaff
{char dross[20];int slag;
};
const int BUF = 512;
const int N = 2;
char buffer[BUF];int main()
{using namespace std;chaff* cf = new (buffer) chaff[N];strcpy_s(cf[0].dross, "gugugu");cf[0].slag = 6;strcpy_s(cf[1].dross, "biubiubiu");cf[1].slag = 9;for (int i = 0; i < 2; i++){cout << "dross, slag: " << cf[i].dross << ", " << cf[i].slag << endl;}//delete cf;<buffer>指定的是静态内存,不需要用delete释放return 0;
}

9-4
main.cpp

#include <iostream>
#include"Sales.h"
using namespace SALES;int main()
{Sales a, b;double arr[3] = { 1.1, 22, 4.4 };setSales(a, arr, 3);showSales(a);setSales(b);showSales(b);return 0;
}

Sales.cpp

#include <iostream>
#include"Sales.h"
using namespace std;void SALES::setSales(Sales& s, const double ar[], int n)
{double sum = 0;double max = ar[0];double min = ar[0];if (n < QUARTERS){for (int i = 0; i < n; i++){s.sales[i] = ar[i];sum += ar[i];if (max < ar[i])max = ar[i];else if (min > ar[i])min = ar[i];}s.average = sum / n;s.max = max;s.min = min;for (int i = n; i < QUARTERS; i++)s.sales[i] = 0;}elsecout << "too long\n";
}
void SALES::setSales(Sales& s)
{double sum = 0;cout << "Enter four numbers:\n";for (int i = 0; i < QUARTERS; i++){std::cin >> s.sales[i];}double max = s.sales[0];double min = s.sales[0];for (int i = 0; i < QUARTERS; i++){sum += s.sales[i];if (max < s.sales[i])max = s.sales[i];else if (min > s.sales[i])min = s.sales[i];}s.average = sum / QUARTERS;s.max = max;s.min = min;
}
void SALES::showSales(const Sales& s)
{cout << "Sales" << "\n";cout << "Average: " << s.average << "\n";cout << "max: " << s.max << "\n";cout << "min: " << s.min << "\n";
}

Sales.h

#ifndef SALES_h_
#define SALES_h_
namespace SALES
{const int QUARTERS = 4;struct Sales{double sales[QUARTERS];double average;double max;double min;};void setSales(Sales& s, const double ar[], int n);void setSales(Sales& s);void showSales(const Sales& s);
}
#endif

C++PrimerPlus学习——第九章编程练习相关推荐

  1. C++ Primer Plus 第九章编程题练习

    C++ Primer Plus 第九章编程题练习 第一题 题目描述 下面是一个头文件: const int Len = 40;struct golf {char fullname[Len];int h ...

  2. 读书笔记:《C++ PrimerPlus》 第九章~第十一章

    第一章 预备知识 第二章 开始学习C++ 第三章 处理数据 第四章 复合类型 第五章 循环和关系表达式 第六章 分支语句和逻辑运算符 第七章 函数--C++的编程模块 第八章 函数探幽 第九章 内存模 ...

  3. java 为什么违例差错控制_JAVA编程思想学习 — 第九章 (违例差错控制)

    1.违例自变量 和 Java 的其他任何对象一样, 需要用 new 在内存堆里创建违例,并需调用一个构建器.在所有标准违例中,存在着两个构建器: 第一个是默认构建器,第二个则需使用一个字串自变量,使我 ...

  4. 记录——《C Primer Plus (第五版)》第九章编程练习第九题

    第九题:为了使程序清单9.8中的函数to_binary()更一般化,可以在 心的函数to_base_n()中使用第二个参数,且该参数的范围从2到10. 然后,这个新函数输出第一个参数在第二个参数规定的 ...

  5. Android群英传学习——第九章、Android系统信息与安全机制

    1.Android系统信息获取 1.1 android.os.Build android.os.Build类里面的信息非常丰富,它包含了系统编译时的大量设备.配置信息,下面列举了一些常用的信息: ● ...

  6. 记录——《C Primer Plus (第五版)》第九章编程练习第十题

    第十题:编写并测试一个函数Fibonacci(),在该函数中使用循环替代 递归完成斐波纳契数列的计算. # include <stdio.h>void Fibonacci(int);int ...

  7. 记录——《C Primer Plus (第五版)》第九章编程练习第八题

    第八题:用递归函数重做第七题. # include <stdio.h>double recur(double num, int cnt);int main(void) {double nu ...

  8. 记录——《C Primer Plus (第五版)》第九章编程练习第六题

    第六题:编写一个程序,使其从标准输入读取字符,直到遇到文件 结尾.对于每个字符,程序需要检查并报告该字符是否是一个字母. 如果是的话,程序还应该报告该字母在字母表中的数值位置.例如 c和C的字母位置都 ...

  9. 记录——《C Primer Plus (第五版)》第九章编程练习第四题

    第四题:两数值的谐均值可以这样计算:首先对两数值的倒数取 平均值,最后再取倒数.编写一个带有两个double参数的函数, 计算这两个参数的谐均值.(为了测试,个人编写了驱动程序) # include ...

最新文章

  1. 不容错过的Pandas小技巧:万能转格式、轻松合并、压缩数据,让数据分析更高效...
  2. 鸟哥的Linux私房菜(基础篇)- 第二十四章、 X Window 配置介绍
  3. MyBatis——insert并返回主键ID解决方案
  4. ASP.NET Core远程调试
  5. 解决cv2.error: OpenCV(4.0.0)的方法
  6. JimuReport积木报表——分组报表怎么做
  7. QUIC - 低时延互联网传输层协议
  8. TensorFlow tf.keras.layers.GlobalAveragePooling1D
  9. 使用 logback + slf4j 进行日志记录
  10. python剑指offer剪绳子
  11. eclipse里面自动添加get和set方法
  12. 3月面经汇总-字节跳动,美团,腾讯算法岗
  13. 安徽合肥一共享单车堆放点发生火灾
  14. TakeColor取色器的使用
  15. Flash Builder 4.6 序列号
  16. 《达拉崩吧》扣哒世界版——在扣哒世界中学习编程
  17. 别人教我学计算机的作文,我学会了电脑作文(通用3篇)
  18. 母亲节祝福html源码,有创意的母亲节祝福语大全
  19. STM32第九课(Input Capture, HAL)
  20. 年龄在线计算机,年龄计算器在线计算2021 抖音上很火的精确年龄岁数计算器查询 - 房贷计算器...

热门文章

  1. linux shell脚本备份mysql数据库
  2. 【转载】架构师需要了解的Paxos原理、历程及实战
  3. Cell.reuseIdentifier 指什么
  4. Ant 风格路径表达式
  5. 带你走近AngularJS - 基本功能介绍
  6. 北京爱情故事-经典语录
  7. Prototype1.5.1源代码解读分析-3
  8. 多个left join 产生多个结果
  9. arduino 蓝牙示例_Arduino简单实例之八_蓝牙模块
  10. python正则匹配_Python正则表达式只匹配一次