2-28

(1)用if else 语句

#include<iostream>

using namespace std;

int main(){
char alphabet;
while (true)
{
cout << "Menu : A(dd) D(elete) S(ort) Q(uit) , Select one:" << endl;
cin >> alphabet ;
if(alphabet=='A')
{
cout << "Data has added" << endl;
}
else if(alphabet=='D')
{
cout << "Data has deleted" << endl;
}
else if(alphabet=='S')
{
cout << "Data has sorted" << endl;
}
else if(alphabet=='Q')
break;
else
cout << "import error,please import another one" << endl;
} return 0;
}

这里用while(true)多组输入,在题目的基础上还多加了一个输入错误的提示。代码运行结果如下:

(2)用switch

switch语句相对于if语句简便了很多

#include<iostream>

using namespace std;

int main(){
char alphabet;
while(true)
{
cout << "Menu: A(dd) D(elete) S(ort) Q(uit),Select one :"<<endl;
cin >> alphabet;
if(alphabet=='Q')
break;
switch(alphabet){
case 'A': cout << "Data has been added" << endl; break;
case 'D': cout << "Data has been deleted" << endl; break;
case 'S': cout << "Data has been sorted" << endl; break;
default : cout << "import error,please import another one" <<endl;
}
} return ;
}

和第一问没有多大区别,运行时间比上一个要快,运行结果如下:

2-29  用穷举法找出1-100的质数

(1)用while

思路是i%j(j<i),如果i=j,就是质数

代码如下:

#include<iostream>

using namespace std;

int main(){
int i=;
while(i<=){
int j=;
while(j<i){
if(i%j==)
break;
j++;
}
if(j==i)
cout << i << endl;
i++;
} return ;
}

运行结果如下:

(2)用do while

由于排列的不够美观,所以这次把结果的排列优化了一遍,代码如下:

#include<iostream>
#include<iomanip> using namespace std; int main(){
int i=;
int a=;
while(i<=){
int j=;
while(j<i){
if(i%j==)
break;
j++;
}
if(j==i)
{
a++;
cout << setw() << i;
if(a%==)
{
cout << endl;
}
}
i++;
} return ;
}

运行结果如下:

(3)用for循环:

代码如下:

#include<iostream>
#include<iomanip> using namespace std; int main(){
int i;
int a=;
for( i=; i<=; i++ )
{
int j=;
for( ; j<i; j++)
{
if(i%j==)
break;
}
if(i==j)
{
a++;
cout << setw() << i;
if(a%==)
cout << endl;
}
} return ;
}

运行结果如下:

从结果来看,3个结果for循环用的时间最少。

2-32 猜数字

(1)用while

#include<iostream>

using namespace std;

const int GUESSNUMBER=;

int main(){
cout << " Please guess a number from 1 to 100 :" << endl;
int num;
while(true){
cin >> num;
if(num==GUESSNUMBER)
{
cout << "Congratulations!You are right!" <<endl;
break;
}
if(num>GUESSNUMBER)
{
cout << "Bigger than num" << endl;
}
if(num<GUESSNUMBER)
{
cout << "smaller than num" << endl;
}
} return ;
}

第一次是定义了一个数字

运行结果如下:

(2)第二次我运用了rand函数,在上一题的基础上优化了一下:

#include<iostream>
#include<cstdlib> using namespace std; int main(){
cout << " Please guess a number from 1 to 100 :" << endl;
int num;
int GUESSNUMBER;
GUESSNUMBER = +(rand()%);
while(true){
cin >> num;
if(num==GUESSNUMBER)
{
cout << "Congratulations!You are right!" <<endl;
break;
}
if(num>GUESSNUMBER)
{
cout << "Bigger than num" << endl;
}
if(num<GUESSNUMBER)
{
cout << "smaller than num" << endl;
}
} return ;
}

运行结果如下:

2-34

(1)不考虑顺序。我是运用了for循环。如果前面比后面的大,就break,代码如下:

#include<iostream>

using namespace std;

int main(){
int total=;
enum Colour { red= , yellow , blue , white , black };
int i,j,k;
for( i=; i<=; i++)
{
for(j=;j<=;j++)
{
if(i>=j)
continue;
for(k=;k<=;k++)
{
if(j>=k)
continue;
total++;
}
}
}
cout << "total = " <<total << endl;
return ;
}

运行结果如下:

(2)我考虑了顺序,也是用for循环

代码如下:

#include<iostream>
#include<cstring> using namespace std; int main(){
enum Colour { red= , yellow , blue , white , black };
char *s[]={ "red", "yellow" , "blue" , "white" , "black"};
int i,j,k;
int total=;
for( i=; i<=; i++)
{
for(j=;j<=;j++)
{
if(i==j)
continue;
for( k=; k<=; k++)
{
if(j==k||i==k)
continue;
total++;
cout <<s[i]<<' '<<s[j]<<' '<<s[k]<<endl;
}
}
}
cout << total << endl;
return ;
}

运行结果如下:

第二章C++实验的更多相关文章

  1. 精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第二章:选择你的网络分析灵魂伴侣的最佳策略 在Web Analytics 2.0的新世界秩序中,您必须跳出"单一真理来 ...

  2. 第二章 C语言编程实践

    上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...

  3. java多线程编程核心技术——第二章

    第一节synchronized同步方法目录 1.1方法内的变量为线程安全的 1.2实例变量非线程安全 1.3多个对象多个锁 1.4synchronized方法与锁对象 1.5脏读 1.6synchro ...

  4. Day2 《机器学习》第二章学习笔记

    这一章应该算是比价了理论的一章,我有些概率论基础,不过起初有些地方还是没看多大懂.其中有些公式的定义和模型误差的推导应该还是很眼熟的,就是之前在概率论课上提过的,不过有些模糊了,当时课上学得比较浅. ...

  5. 《linux内核设计与实现》第二章

    第二章 从内核出发 一.获取内核源码 1.使用Git(linux创造的系统) 使用git来获取最新提交到linux版本树的一个副本: $ git clone git://git.kernel.org/ ...

  6. Linux 读书笔记 三 (第二章)

      一.学习目标 1. 理解二进制在计算机中的重要地位 2. 掌握布尔运算在C语言中的应用 3. 理解有符号整数.无符号整数.浮点数的表示 4. 理解补码的重要性 5. 能避免C语言中溢出,数据类型转 ...

  7. 【黑金原创教程】【TimeQuest】【第二章】TimeQuest模型角色,网表概念,时序报告

    声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...

  8. 【黑金原创教程】【Modelsim】【第二章】Modelsim就是电视机

    声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...

  9. java多线程编程核心技术——第二章总结

    第一节synchronized同步方法目录 1.1方法内的变量为线程安全的 1.2实例变量非线程安全 1.3多个对象多个锁 1.4synchronized方法与锁对象 1.5脏读 1.6synchro ...

随机推荐

  1. 爬虫 之 scrapy框架

    浏览目录 介绍 安装 项目结构及爬虫应用简介 常用命令行工具 Spiders爬虫 Selectors选择器 Item Pipeline 项目管道 Downloader Middleware下载中间件 ...

  2. C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串

    在工作中,如果需要跟XML打交道,难免会遇到需要把一个类型集合转换成XML格式的情况.之前的方法比较笨拙,需要给不同的类型,各自写一个转换的函数.但是后来接触反射后,就知道可以利用反射去读取一个类型的 ...

  3. Druid详细配置信息

    druid的配置项如下 配置 缺省值 说明 name   配置这个属性的意义在于,如果存在多个数据源,监控的时候 可以通过名字来区分开来.如果没有配置,将会生成一个名字, 格式是:"Data ...

  4. 编写高质量代码改善C#程序的157个建议——建议152:最少,甚至是不要注释

    建议152:最少,甚至是不要注释 以往,我们在代码中不写上几行注释,就会被认为是钟不负责任的态度.现在,这种观点正在改变.试想,如果我们所有的命名全部采用有意义的单词或词组,注释还有多少存在的价值. ...

  5. mybatis 输入、输出映射

    一.输入映射 mapper.xml的参数只有一个.可以传参数,基本简单类型,hashmap和javabean (一).Javabean的方法. 需求:通过小说名和作者模糊找书. 1.定义Javabea ...

  6. C++ 动态分配二维和三维数组

    目的:熟悉c++动态内存分配 描述:使用c++程序定义动态数组类,使用new和delete操作符实现动态二维数组和三维数组的定义 //main.cpp //主程序类 #include <iost ...

  7. 走进AOP In .NET

    AOP是什么,有的译为面向方面编程,有的译为面向切面编程,我更加赞同后者.接下来,让我们一步步揭开AOP的面纱. AOP衍生自 编程中出现了一些用OOP技术无法捕捉和解决的问题.跟其他开发工具和思想一 ...

  8. 新入门PGSQL数据库(尝试利用PGPOOL实现分布式),摘录笔记

    概念: PostgreSQL (pronounced "post-gress-Q-L") is an open source relational database managem ...

  9. Javascript 链式作用域 function fn(){}和var fn=function(){}区别

    其实对于Javascript链式作用域的描述,包括,JS权威指南,都有些太冗长了--但是很准确:JavaScript中的函数运行在他们被定义的作用域里,而不是他们被执行的作用域里. 这句话有点难懂,但 ...

  10. [Erlang15]“hello world”与<<”hello world”>>的具体区别是什么?

    参见 :http://learnyousomeerlang.com/buckets-of-sockets 为了加深理解,自译如下,若理解有误或更好的建议,请帮忙指出, :) Buckets of So ...