第二章C++实验
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++实验的更多相关文章
- 精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第二章:选择你的网络分析灵魂伴侣的最佳策略 在Web Analytics 2.0的新世界秩序中,您必须跳出"单一真理来 ...
- 第二章 C语言编程实践
上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...
- java多线程编程核心技术——第二章
第一节synchronized同步方法目录 1.1方法内的变量为线程安全的 1.2实例变量非线程安全 1.3多个对象多个锁 1.4synchronized方法与锁对象 1.5脏读 1.6synchro ...
- Day2 《机器学习》第二章学习笔记
这一章应该算是比价了理论的一章,我有些概率论基础,不过起初有些地方还是没看多大懂.其中有些公式的定义和模型误差的推导应该还是很眼熟的,就是之前在概率论课上提过的,不过有些模糊了,当时课上学得比较浅. ...
- 《linux内核设计与实现》第二章
第二章 从内核出发 一.获取内核源码 1.使用Git(linux创造的系统) 使用git来获取最新提交到linux版本树的一个副本: $ git clone git://git.kernel.org/ ...
- Linux 读书笔记 三 (第二章)
一.学习目标 1. 理解二进制在计算机中的重要地位 2. 掌握布尔运算在C语言中的应用 3. 理解有符号整数.无符号整数.浮点数的表示 4. 理解补码的重要性 5. 能避免C语言中溢出,数据类型转 ...
- 【黑金原创教程】【TimeQuest】【第二章】TimeQuest模型角色,网表概念,时序报告
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...
- 【黑金原创教程】【Modelsim】【第二章】Modelsim就是电视机
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...
- java多线程编程核心技术——第二章总结
第一节synchronized同步方法目录 1.1方法内的变量为线程安全的 1.2实例变量非线程安全 1.3多个对象多个锁 1.4synchronized方法与锁对象 1.5脏读 1.6synchro ...
随机推荐
- 爬虫 之 scrapy框架
浏览目录 介绍 安装 项目结构及爬虫应用简介 常用命令行工具 Spiders爬虫 Selectors选择器 Item Pipeline 项目管道 Downloader Middleware下载中间件 ...
- C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串
在工作中,如果需要跟XML打交道,难免会遇到需要把一个类型集合转换成XML格式的情况.之前的方法比较笨拙,需要给不同的类型,各自写一个转换的函数.但是后来接触反射后,就知道可以利用反射去读取一个类型的 ...
- Druid详细配置信息
druid的配置项如下 配置 缺省值 说明 name 配置这个属性的意义在于,如果存在多个数据源,监控的时候 可以通过名字来区分开来.如果没有配置,将会生成一个名字, 格式是:"Data ...
- 编写高质量代码改善C#程序的157个建议——建议152:最少,甚至是不要注释
建议152:最少,甚至是不要注释 以往,我们在代码中不写上几行注释,就会被认为是钟不负责任的态度.现在,这种观点正在改变.试想,如果我们所有的命名全部采用有意义的单词或词组,注释还有多少存在的价值. ...
- mybatis 输入、输出映射
一.输入映射 mapper.xml的参数只有一个.可以传参数,基本简单类型,hashmap和javabean (一).Javabean的方法. 需求:通过小说名和作者模糊找书. 1.定义Javabea ...
- C++ 动态分配二维和三维数组
目的:熟悉c++动态内存分配 描述:使用c++程序定义动态数组类,使用new和delete操作符实现动态二维数组和三维数组的定义 //main.cpp //主程序类 #include <iost ...
- 走进AOP In .NET
AOP是什么,有的译为面向方面编程,有的译为面向切面编程,我更加赞同后者.接下来,让我们一步步揭开AOP的面纱. AOP衍生自 编程中出现了一些用OOP技术无法捕捉和解决的问题.跟其他开发工具和思想一 ...
- 新入门PGSQL数据库(尝试利用PGPOOL实现分布式),摘录笔记
概念: PostgreSQL (pronounced "post-gress-Q-L") is an open source relational database managem ...
- Javascript 链式作用域 function fn(){}和var fn=function(){}区别
其实对于Javascript链式作用域的描述,包括,JS权威指南,都有些太冗长了--但是很准确:JavaScript中的函数运行在他们被定义的作用域里,而不是他们被执行的作用域里. 这句话有点难懂,但 ...
- [Erlang15]“hello world”与<<”hello world”>>的具体区别是什么?
参见 :http://learnyousomeerlang.com/buckets-of-sockets 为了加深理解,自译如下,若理解有误或更好的建议,请帮忙指出, :) Buckets of So ...