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. Perl 学习笔记-目标操作

    1.在目录树中移动. 程序运行时会以当前工作目录作为相对路径的起点, 可以使用  chdir 操作符改变当前目录: chdir "/etc" or die "Can't ...

  2. javascript总结41:表格全选反选,经典案例详解

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  3. 设计模式17:Iterator 迭代器模式(行为型模式)

    Iterator 迭代器模式(行为型模式) 动机(Motivation) 在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码可以透 ...

  4. ubuntu eclipse 集成pyDev

    Eclipse help 选择安装新软件 添加一个pydev 名字随意.地址是 http://pydev.org/updates. 下面的列表会出现很多PyDev For Eclipse 选择版本最高 ...

  5. Intel Galileo development documentation

    Intel Galileo development Documentation Author:Liutianchen 1552227, Department of Computer Science,E ...

  6. Windows下Oracle的下载与安装及配置

    一.Oracle下载 官网地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 百 ...

  7. 洛谷P3783 [SDOI2017]天才黑客(前后缀优化建图+虚树+最短路)

    题面 传送门 题解 去看\(shadowice\)巨巨写得前后缀优化建图吧 话说我似乎连线段树优化建图的做法都不会 //minamoto #include<bits/stdc++.h> # ...

  8. JQuery实现全选、反选和取消功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. MySql数据库,对varchar类型字段str进行where str=0条件查询时,查询结果是什么

    在用MySQL查询数据的时候,遇到了一个奇怪的问题.用一个varchar类型的字符串str,作为条件与0比较时,会查str不为0的数据. 比如:SELECT id, idnumber from hr_ ...

  10. [转] 迁移 VMware 虚拟机到 KVM

    迁移 VMware 虚拟机到 KVM 如何迁移 VMware 上的 Windows 及 Linux 虚拟机到基于 KVM 的虚拟机 目前 x86 平台上最流行的虚拟化软件是 VMware 公司的系列产 ...