C++编程基础一 33-编程练习题二

  1 // 33-编程练习题二.cpp: 定义控制台应用程序的入口点。
  2 //
  3
  4 #include "stdafx.h"
  5 #include <iostream>
  6 #include <climits>
  7 #include <array>
  8 #include <math.h>
  9 #include <string>
 10 using namespace std;
 11
 12 enum CH
 13 {
 14     A, //0
 15     B, //1
 16     C, //2
 17     D, //3
 18     E, //4
 19     F, //5
 20     Z  //6
 21 };
 22
 23 void Test1();
 24 void Test2();
 25 void Test3();
 26 void Test4();
 27 void Test5();
 28
 29 int main()
 30 {
 31     Test1();
 32
 33
 34
 35     int t;
 36     cin >> t;
 37     return 0;
 38 }
 39 //------------------------------练习----------------------------------
 40 //1.用switch改写下面的代码片段:
 41 //if (ch == ‘A‘)
 42 //    a_grade++;
 43 //else if (ch == ‘B‘)
 44 //    b_grade++;
 45 //else if (ch == ‘C‘)
 46 //    c_grade++;
 47 //else if (ch == ‘D‘)
 48 //    d_grade++;
 49 //else
 50 //    f_grade++;
 51 void Test1()
 52 {
 53     bool isGrade = true;
 54     int a_grade=0, b_grade=0, c_grade=0, d_grade=0, e_grade=0, f_grade = 0;
 55     CH charValue = A;
 56     while (isGrade)
 57     {
 58         char temp;
 59         cout << "请输入最终评分(A-Z)";
 60         cin >> temp;
 61         charValue = CH(temp);
 62         cout << "您输入的评分是:" << temp<< endl;
 63         switch (charValue)
 64         {
 65         case ‘A‘:
 66             a_grade++;
 67             cout << "A等级提高为:" << a_grade << endl;
 68             break;
 69         case ‘B‘:
 70             b_grade++;
 71             cout << "B等级提高为:" << b_grade << endl;
 72             break;
 73         case ‘C‘:
 74             c_grade++;
 75             cout << "C等级提高为:" << c_grade << endl;
 76             break;
 77         case ‘D‘:
 78             d_grade++;
 79             cout << "D等级提高为:" << d_grade << endl;
 80             break;
 81         case ‘Z‘:
 82             cout << "淘汰出局!" <<endl;
 83             isGrade = false;
 84             break;
 85         default:
 86             f_grade++;
 87             cout << "F等级提高为:" << f_grade << endl;
 88             break;
 89         }
 90     }
 91     Test2();
 92
 93 }
 94 //2.求得20!(阶乘:4的阶乘相当于1*2*3*4)
 95 void Test2()
 96 {
 97     int num;
 98     cout<< "请输入一个整数求阶乘 :";
 99     cin >> num;
100     long long result = 1;
101     for (int i = 1; i <= num;i++)
102     {
103         result = result * i;
104     }
105     cout << num<<"的阶乘为:"<< result << endl;
106     Test3();
107
108 }
109
110 //3.求得 1! + 2! +3! +.....+20! //输入一个整数,求得从1到这个数内所有整数阶乘的和。
111 void Test3()
112 {
113     int num;
114     cout << "请输入一个整数:";
115     cin >> num;
116     long long result=0;
117
118     for (int i = 1; i <= num; i++)
119     {
120         long long resultTemp=1;
121         for (int j=1;j<=i;j++)
122         {
123             resultTemp = resultTemp *j;
124         }
125
126         result  += resultTemp;
127     }
128     cout << num << "以内所有整数的阶乘的和为:" << result<<endl;
129     Test4();
130
131 }
132
133 //4.实现函数判断一字符串是否是回文(顺读倒读都一样的字符串),若是回文,函数返回值为1,否则返回值为0。
134 void Test4()
135 {
136     bool isHui = true;
137     string str ;
138     cout << "请输入一字符串:";
139     cin >> str;
140     for (int i = 0; i < str.size()/2; i++)
141     {
142         if (str[i] != str[str.size() - 1 - i])
143         {
144             isHui = false;
145         }
146     }
147     if (isHui)
148     {
149         cout << "是回文" << endl;
150     }
151     else
152     {
153         cout << "不是回文" << endl;
154     }
155     Test5();
156 }
157 //5.输入三个整数,分别放在变量a,b,c中,然后把输入的数据重新按照由小到大的顺序放在变量a,b,c中,最后输出a,b,c的值。
158 void Test5()
159 {
160     int a,b,c;
161     cout << "请输入第一个整数:" << endl;
162     cin >> a;
163     cout << "请输入第二个整数:" << endl;
164     cin >> b;
165     cout << "请输入第三个整数:" << endl;
166     cin >> c;
167     while (true)
168     {
169         if (a >b)
170         {
171             int temp = a;
172             a = b;
173             b = temp;
174         }
175         if (b > c) //a>b 和b>c 是三个变量,不能用else if来比较。
176         {
177             int temp = b;
178             b = c;
179             c = temp;
180         }
181         if ((a < b) && (b < c))
182         {
183             break;
184         }
185     }
186     cout <<"a="<< a<<"\n"<<"b="<< b<<"\n" <<"c=" << c << endl;
187 }

原文地址:https://www.cnblogs.com/uimodel/p/9346611.html

时间: 2024-07-31 20:29:46

C++编程基础一 33-编程练习题二的相关文章

Java笔记二十三.网络编程基础与UDP编程

网络编程基础与UDP编程 转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.网络编程基础 1.TCP/IP协议:TCP/IP协议是一个非常实用的网络应用程序通信协议,包括TCP(传输控制协议)和IP地址(计算机唯一标识号). 2.IP地址:IP在互联网中能唯一标识一台计算机,是每一台计算机的唯一标识(身份证),通过这个标识号来指定接收数据的计算机和识别发送数据的计算机,该标识号即为IP地址. (1)Ipv4:指在计算机中IP地址用4个字节(

javaAPI_网络编程基础_网络编程基础1

网络编程基础 1.网络编程概述 (1).计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件 及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. (2).网络编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换. 2.网络模型概述以及图解 (1).计算机网络之间以何种规则进行通信,就是网络模型研究问题. (2).网络模型一般是指 OSI(Open System Interconnection开放系

编程基础知识分享——编程开始之前

对我来说,编程这件事与其说是工作,不如说是兴趣.尽管和自己理想中的编程比,自己的所谓编程只不过是小打小闹,但是现在又有多少所谓的IT从业者是做真正的编程?产业化的今天,其实真的没有必要区分所谓的程序员和码农,每个人的路线和生活都不相同,也不可能相同,有人学编程只是为了一份工作,有人纯粹为了爱好.我的理解,无论出发点如何,只要尊重自己的选择,能够有所收获就够了. 这系列文章,是自己当初学习编程的一些方法和经验,整理了一下,可以分成几块记录.对于专业的程序员,我的经验并不适合,一些计算机专业出身的朋

javaAPI_网络编程基础_网络编程基础2

网络编程基础2 1.TCP协议 (1).实现步骤 A:创建发送端的Socket对象 这一步如果成功,就说明连接已经建立成功了. B:获取输出流,写数据 C:释放资源 连接被拒绝.TCP协议一定要先看服务器. java.net.ConnectException: Connection refused: connect (2).客户端 public static void main(String[] args) throws IOException { // 创建发送端的Socket对象 // So

网络编程基础之TCP编程学习(一)

网络编程基础了解 socket套接字 socket是一种通讯机制,它包含一整套的调用接口和数据结构的定义,他给应用程序提供了使用如TCP/UDP等网络通讯的手段. linux中的网络编程通过socket接口实现,socket既是一种特殊的IO,提供对应的文件描述符.一个完整的socket都有一个相关描述{协议,本地地址,本地端口,远程地址,远程端口};每个socket有一个本地唯一Socket,由操作系统分配. 定位某个计算机用IP,定位某个服务用端口. 创建Socket #include <s

网络编程基础之TCP学习(二)编程案例

TCP网络编程流程如下: 实现功能:服务器端与客户端成功通讯后返回get! 服务器端程序 #include <netdb.h>#include <sys/socket.h>#include <unistd.h>#include <string.h>#include <stdio.h>#include <stdlib.h>#include <memory.h>#include <signal.h>#include

第1章 网络编程基础(2)——Socket编程原理

Socket编程原理 Socket是网络通信端点的一种抽象,它提供了一种发送和接收数据的机制. 流socket(SOCK_STREAM):双向.有序.无重复.并且无记录边界 数据报Socket(SOCK_DGRAM):双向.保留记录边界 面向连接的操作比无连接的操作效率低,但数据的安全性更高. Socket通信流程 IP地址标志主机,端口号标志进程,IP加上端口号才能确定连接目标. 一个网络连接需要以下5种信息: 本地协议端口:指出接收报文或数据的进程. 本地主机地址:指出接收数据包的主机. 远

第二周:神经网络的编程基础----------2、编程作业常见问题与答案(Programming Assignment FAQ)

Please note that when you are working on the programming exercise you will find comments that say "# GRADED FUNCTION: functionName". Do not edit that comment. The function in that code block will be graded. 1) What is a Jupyter notebook? A Jupyt

IOS学习之十七:Grand Central Dispatch(GCD)编程基础

IOS学习之十七:Grand Central Dispatch(GCD)编程基础 有过编程经验的人,基本都会接触到多线程这块. 在java中以及Android开发中,大量的后台运行,异步消息队列,基本都是运用了多线程来实现. 同样在,在ios移动开发和Android基本是很类似的一种模型. 但是很多时候,在应用开发中,我们会发现本身并没有自己编码去处理一些并发的事件,去开辟新的子线程等等. (虽然一般的调用sdk发起一个网络请求,系统都是会默认给你新起一个线程去处理的). 整个程序看上去基本就是