求一个c++程序

来源:百度知道 编辑:UC知道 时间:2024/06/27 19:48:04
写一个C++程序 输入一个少于20个字母的单词 将它转换为另一种码 转换方法为 1 代表 B, F, P, V
2 代表 C, G, J, K, Q, S, X, Z
3 代表 D,T
4 代表 L
5 代表 M,N
6 代表 R
A, E, I, O, U, H, W, Y 什莫也不被代表 如果两个字母或更多在一起都等于一个数字 那末只用一个数字表示
例如 输入 KHAWN 输出 25
输入 PFISTER 输出 1236
输入 BOBBY 输出 11

#include<iostream.h>
char change(char s[],int i);
void main()
{
char s[20];
int i=0;
char change_num;
char LOOP;
cout<<"Input a characts: ";
cin>>s[i];
LOOP:
while(s[i]!='#') //输入字符'#'时结束循环
{
if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='H'||
s[i]=='W'||s[i]=='Y'||s[i]==s[i-1]) //当输入的字符与A,E,I,O,U,H,W,Y相同时退出循环,并且如果两个字母相同则只进行一次循环
{i++;cin>>s[i];goto LOOP;}
change_num=change(s,i)+'0';
if(change_num==change(s,i-1)+'0')//当两个贴近的数为相同数时退出循环
{i++;cin>>s[i];goto LOOP;}
i++;
cin>>s[i];
cout<<change_num;
}
cout<<endl;
}
char change(char s[],int i)
{
if(s[i]=='B'||s[i]=='F'||s[i]=='P'||s[i]=='V')
return 1;
if(s[