你得把你现有的程序贴出来才好具体回答你。
你说的array string和char都是可以实现的。
给你写了一个参考下:
#include "stdio.h"
class Machine
{
public:
char Play()
{
return 'R';
}
};
class Human
{
public:
char Play()
{
char ch;
//printf("s?r?p?\n");
scanf("%c", &ch);
return ch;
}
};
class Referee
{
public:
char Judge(char m, char p)
{
if (m == p) return 'T';
if ((m == 'S' && p == 'P') ||
(m == 'P' && p == 'R') ||
(m == 'R' && p == 'S'))
return 'L';
else
return 'W';
}
};
int main()
{
Machine m;
Human p;
Referee r;
int n;
char buf[100];
scanf("%d", &n);
for (int i = 0; i < n; i++)
buf[i] = r.Judge(m.Play(), p.Play());
buf[n] = '\0';
printf("%s\n", buf);
return 0;
}
如果问题得到解决,请点我回答左上角的采纳。
带空格的版本
#include "stdio.h"
class Machine
{
public:
char Play()
{
return 'R';
}
};
class Human
{
public:
char Play()
{
char ch;
do {
scanf("%c", &ch);
} while (ch == ' ');
return ch;
}
};
class Referee
{
public:
char Judge(char m, char p)
{
if (m == p) return 'T';
if ((m == 'S' && p == 'P') ||
(m == 'P' && p == 'R') ||
(m == 'R' && p == 'S'))
return 'L';
else
return 'W';
}
};
int main()
{
Machine m;
Human p;
Referee r;
int n;
char buf[100];
scanf("%d", &n);
for (int i = 0; i < n * 2; i += 2)
{
buf[i] = r.Judge(m.Play(), p.Play());
buf[i + 1] = ' ';
}
buf[n * 2 - 1] = '\0';
printf("%s\n", buf);
return 0;
}