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. Hash校验工具、MD5 SHA1 SHA256命令行工具

    MyHash 检验工具http://www.zdfans.com/html/4346.html HashMyFiles Hash校验工具http://www.nirsoft.net/utils/has ...

  2. Smarty的循环

    (1)section.sectionelse功能多,参数多.或许不是太实用.是smarty用来做循环操作的函数之一.(2)了解基本属性name和loop <section name=articl ...

  3. Smarty的基本语法------变量调节器

    (1)首字母大写capitalize示例:{$articleTitle|capitalize}(2)字符串连接 cat示例:{$articleTitle|cat:" yesterday.&q ...

  4. 1700 Crossing River

    题目链接: http://poj.org/problem?id=1700 1. 当1个人时: 直接过河 t[0]. 2. 当2个人时: 时间为较慢的那个 t[1]. 3. 当3个人时: 时间为 t[0 ...

  5. bash 环境配置及脚本

    bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来 查看当前shellecho $SHELL查看系统支持的shellcat /etc/shells cd /binls ...

  6. Sublime Text 3 -mac简体中文汉化包下载及教程

    Sublime Text 3下载 官方下载地址:http://www.sublimetext.com/3 汉化包链接 1.将上面要求下载的sublime_text_3.zip 文件解压,得到的Defa ...

  7. 51Nod 1554 欧姆诺姆和项链 (KMP)

    题意:中文题. 析:首先要使用KMP的失配函数 f ,对于长度为 i 的串,如果存在循环节那么  i % (i-f[i]) == 0,循环节的长度就是 i - f[i] ,当然次数就是 i / (i- ...

  8. 1、Semantic-UI之开发环境搭建

    下载webstrom(其他的任何可以进行前端开发的软件都可以) Download WebStorm: The Smartest JavaScript IDE by JetBrains 安装并激活web ...

  9. java学习(六)面向对象 final关键字 多态

    1.被fnial修饰的方法不能被重写,常见的为修饰类,方法,变量 /* final可以修饰类,方法,变量 特点: final可以修饰类,该类不能被继承. final可以修饰方法,该方法不能被重写.(覆 ...

  10. Arcgis Android 常见问题

    关于arcgis android 安装包较大的问题 如果想缩小大小,可以只保留armeabi,只是这样就不支持x86类型cpu的手机了. 可以考虑做成单独的版本,供用户下载. 即打2个包,一个供普通a ...