C++输入5张扑克牌,找出其中的最大的那一张的编号(按照输入顺序从1开始)。注意,只包含A——K,且2最小,A最大,数字相同则红桃>黑桃>方块>梅花。花色用数字1表示红桃,2表示黑桃,3表示方块,4表示梅花。输入时每张牌先输入A——K,再输入花色对应的数字。
时间: 2024-02-22 08:57:11 浏览: 19
好的,这是一个简单的题目,可以使用结构体来存储每张牌的信息,然后遍历数组找到最大的一张牌。以下是 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
struct Poker {
char point; // 牌面点数,A-K
int suit; // 花色,1-红桃,2-黑桃,3-方块,4-梅花
};
int main() {
Poker cards[5];
for (int i = 0; i < 5; i++) {
cin >> cards[i].point >> cards[i].suit;
}
int maxIndex = 0;
for (int i = 1; i < 5; i++) {
if (cards[i].point > cards[maxIndex].point ||
(cards[i].point == cards[maxIndex].point && cards[i].suit < cards[maxIndex].suit)) {
maxIndex = i;
}
}
cout << maxIndex + 1 << endl;
return 0;
}
```
输入样例:
```
K 1
Q 2
J 3
10 4
A 1
```
输出样例:
```
5
```
相关问题
c++输入三个字符串,最长20个字符,找出其中最大的字符串,并输出
可以使用数组来存储这三个字符串,然后遍历比较它们的长度,找出最长的字符串,最后输出即可。
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str[3];
for(int i=0; i<3; i++) {
cout << "请输入第" << i+1 << "个字符串:";
cin >> str[i];
}
int maxLen = 0, maxIndex = 0;
for(int i=0; i<3; i++) {
if(str[i].length() > maxLen) {
maxLen = str[i].length();
maxIndex = i;
}
}
cout << "最长的字符串为:" << str[maxIndex] << endl;
return 0;
}
```
运行程序,输入三个字符串:
```
请输入第1个字符串:apple
请输入第2个字符串:banana
请输入第3个字符串:orange
```
输出结果:
```
最长的字符串为:banana
```
输入4个整数,找出其中的最大数。用函数的递归调用来处理。C++
以下是使用递归调用找出4个整数中最大值的C++代码:
```cpp
#include <iostream>
using namespace std;
int findMax(int arr[], int n) {
if (n == 1) {
return arr[0];
}
int max = findMax(arr, n - 1);
if (arr[n - 1] > max) {
return arr[n - 1];
} else {
return max;
}
}
int main() {
int arr[4];
cout << "请输入4个整数:" << endl;
for (int i = 0; i < 4; i++) {
cin >> arr[i];
}
cout << "最大值为:" << findMax(arr, 4) << endl;
return 0;
}
```
首先定义了一个 `findMax` 函数,该函数以整型数组和整型变量 `n` 作为参数,返回数组中前 `n` 个元素的最大值。如果 `n` 等于 1,那么直接返回数组的第一个元素。否则,递归调用 `findMax` 函数来找到前 `n - 1` 个元素的最大值,然后将它与第 `n` 个元素进行比较,返回两者中较大的值。
在主函数中,先输入4个整数并将它们存储在一个数组中,然后调用 `findMax` 函数来找到数组中的最大值,并将结果输出。