5.5
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
int grade;
cout << "请输入您的成绩 ";
cin >> grade;
if (grade < 0 || grade>100)
{
cout << "该成绩不合法" << endl;
return -1;
}
if (grade == 100)
{
cout << "等级成绩是:" << "A++" << endl;
return -1;
}
if (grade < 60)
{
cout << "等级成绩是:" << "F" << endl;
return -1;
}
int iU = grade / 10;
int iT = grade % 10;
string score, level, lettergrade;
if (iU == 9)
score = "A";
else if (iU == 8)
score = "B";
else if (iU == 7)
score = "C";
else
score = "D";
if (iT < 3)
level = "-";
else if (iT > 7)
level = "+";
else
level = "";
lettergrade = score + level;
cout << "等级成绩是:" << lettergrade << endl;
return 0;
}
5.6
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
int grade;
cout << "请输入您的成绩 ";
cin >> grade;
if (grade < 0 || grade>100)
{
cout << "该成绩不合法" << endl;
return -1;
}
if (grade == 100)
{
cout << "等级成绩是:" << "A++" << endl;
return -1;
}
if (grade < 60)
{
cout << "等级成绩是:" << "F" << endl;
return -1;
}
int iU = grade / 10;
int iT = grade % 10;
string score, level, lettergrade;
score = (iU == 9) ? "A" : (iU == 8) ? "B" : (iU == 7) ? "C" : "D";
level = (iT < 3) ? "-" : (iT>7) ? "+" : "";
lettergrade = score + level;
cout << "等级成绩是:" << lettergrade << endl;
return 0;
}
5.9
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
unsigned int vowelCnt = 0;
char ch;
cout << "请输入一段文本" << endl;
while (cin >> ch)
{
if (ch == 'a')
++vowelCnt;
if (ch == 'e')
++vowelCnt;
if (ch == 'i')
++vowelCnt;
if (ch == 'o')
++vowelCnt;
if (ch == 'u')
++vowelCnt;
}
cout << "您输入的文本中共有" << vowelCnt << "个原音字母" << endl;
return 0;
}
5.10
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
unsigned int aCnt = 0, eCnt = 0, iCnt = 0, oCnt = 0, uCnt = 0;
char ch;
cout << "请输入一段文本" << endl;
while (cin >> ch)
{
switch (ch)
{
case 'a':
case 'A':
++aCnt;
break;
case 'e':
case 'E':
++eCnt;
break;
case 'i':
case 'I':
++iCnt;
break;
case 'o':
case 'O':
++oCnt;
break;
case 'u':
case 'U':
++uCnt;
break;
}
}
cout << "元音字母a的数量是:" << aCnt << endl;
cout << "元音字母e的数量是:" << eCnt << endl;
cout << "元音字母i的数量是:" << iCnt << endl;
cout << "元音字母o的数量是:" << oCnt << endl;
cout << "元音字母u的数量是:" << uCnt << endl;
return 0;
}
5.14
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
string currString, preString = "", maxString;
int currCnt = 1, maxCnt = 0;
while (cin >> currString)
{
if (currString == preString)
{
++currCnt;
if (currCnt > maxCnt)
{
maxCnt = currCnt;
maxString = currString;
}
}
else
{
currCnt = 1;
}
preString = currString;
}
if (maxCnt > 1)
cout << "出现最多的字符串是:" << maxString << ",次数是:" << maxCnt << endl;
else
cout << "每个字符串都只出现了一次" << endl;
return 0;
}
5.17
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
vector<int> v1 = { 0, 1, 1, 2 };
vector<int> v2 = { 0, 1, 1, 2, 3, 5, 8 };
vector<int> v3 = { 3, 5, 8 };
vector<int> v4 = { 3, 5, 0, 9, 2, 7 };
auto it1 = v1.cbegin();
auto it2 = v2.cbegin();
auto it3 = v3.cbegin();
auto it4 = v4.cbegin();
while (it1 != v1.cend() && it2 != v2.cend())
{
if (*it1 != *it2)
{
cout << "v1和v2之间不存在前缀关系" << endl;
break;
}
++it1;
++it2;
}
if (it1 == v1.cend())
{
cout << "v1是v2的前缀" << endl;
}
if (it2 == v2.cend())
{
cout << "v2是v1的前缀" << endl;
}
return 0;
}
5.19
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
do
{
cout << "请输入两个字符串:" << endl;
string str1, str2;
cin >> str1 >> str2;
if (str1.size() < str2.size())
cout << "长度较小的字符串是:" << str1 << endl;
else if (str1.size() > str2.size())
cout << "长度较小的字符串是:" << str2 << endl;
else
cout << "两个字符串等长" << endl;
} while (cin);
return 0;
}
5.20
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
string currString, preString;
bool bl = true;
cout << "请输入一组字符串:" << endl;
while (cin >> currString)
{
if (currString == preString)
{
bl = false;
cout << "连续出现的字符串是:" << currString << endl;
break;
}
preString = currString;
}
if (bl)
cout << "没有连续出现的字符串" << endl;
return 0;
}
5.21
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
string currString, preString;
bool bl = true;
cout << "请输入一组字符串:" << endl;
while (cin >> currString)
{
if (!isupper(currString[0]))
continue;
if (currString == preString)
{
bl = false;
cout << "连续出现的字符串是:" << currString << endl;
break;
}
preString = currString;
}
if (bl)
cout << "没有连续出现的字符串" << endl;
return 0;
}
5.23
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
cout << "请依次输入被除数和除数:" << endl;
int ival1, ival2;
cin >> ival1 >> ival2;
if (ival2 == 0)
{
cout << "除数不能为0" << endl;
return -1;
}
cout << "两数相除的结果是:" << ival1 / ival2 << endl;
return 0;
}
5.24
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
cout << "请依次输入被除数和除数:" << endl;
int ival1, ival2;
cin >> ival1 >> ival2;
if (ival2 == 0)
{
throw runtime_error("除数不能为0");
}
cout << "两数相除的结果是:" << ival1 / ival2 << endl;
return 0;
}
5.25
#include<stdio.h>
#include<vector>
#include<ctime>
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{
cout << "请依次输入被除数和除数:" << endl;
int ival1, ival2;
while (cin >> ival1 >> ival2)
{
try
{
if (ival2 == 0)
{
throw runtime_error("除数不能为0");
}
cout << "两数相除的结果是:" << ival1 / ival2 << endl;
}
catch (runtime_error err)
{
cout << err.what() << endl;
cout << "需要继续吗(y or 你)?";
char ch;
cin >> ch;
if (ch != 'y'&&ch != 'Y')
break;
}
}
return 0;
}