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 }

 

posted on 2018-07-21 14:24  uimodel  阅读(308)  评论(0编辑  收藏  举报

导航