C语言实验题――简单编码
描述
将一串文本译成密码,密码的规律是:
将原来的小写字母全部翻译成大写字母,大写字母全部翻译成小写字母,数字的翻译规律如下:
0――>9
1――>8
2――>7
3――>6
4――>5
5――>4
6――>3
7――>2
8――>1
9――>0
然后将所有字符的顺序颠倒。
输入
输入一串文本,最大字符个数不超过100。
输出
输出编码后的结果。
样例输入
china
样例输出
ANIHC
下面就是我做的代码
#include <iostream>
#include <stack>
using namespace std;
int main(int argc, char *argv[])
{
char ch;
stack<char> s;
while(true)
{
ch = getchar();
if (ch == ' ' || ch == '\n' || ch == EOF)
{
while (!s.empty())
{
if(s.top()>='a'&&s.top()<='z')
{
printf("%c", s.top()-32);
}
else if(s.top()>='A'&&s.top()<='Z')
{
printf("%c", s.top()+32);
}
else if(s.top()>='0'&&s.top()<='9')
{
printf("%c", 105-s.top());
}
else;
s.pop();
}
if (ch == '\n' || ch == EOF)
{
break;
}
printf(" ");
}
else
{
s.push(ch);
}
}
printf("\n");
return 0;
}
运行结果没有问题。
但是提交却不通过。
先放在这里,等待纠正。