Skip to content

14026: 【原4026】ASCII码和数据类型转换

题目

题目描述

author: 程序设计思想与方法助教组Duke 原OJ链接:https://acm.sjtu.edu.cn/OnlineJudge-old/problem/4026

问题描述

编写一个程序,输入一个四位数,将其加密后输出。加密方法是首先将该数每一位上的数字加13得到一个数,然后转换成对应的大写英文字母。1对应‘B’(《C++程序设计实验指导》描述错误,此处应为1对应'A'),2对应'B',……,26对应'Z'。

输入输出描述

输入

  • 程序运行到输入时,不要显示输入提示信息。
  • 输入为1个4位正整数,测试用例输入仅包含4位正整数。

输出

  • 输出为加密后的4位英文字符,结尾处不包含换行符、回车符。

程序运行示例1

Sample Input 1

5089

Sample Output 1

RMUV

程序运行示例2

Sample Input 2

1234

Sample Output 2

NOPQ

程序运行示例3

Sample Input 3

12

Sample Output 3

Error!

注意

  • 程序运行示例中,非4位整数的情况需要使用if语句,本次实验不作要求,可自行实验。
  • 不要显示提示信息,即不要出现题目要求以外的输出,避免输出判定错误
  • 输出时注意去除多余的空格,输出结尾时不输出换行符、回车符,避免输出判定错误
  • 程序编写过程中,注意全角半角符号问题,避免编译报错。
  • 以上程序运行示例仅用作明确阐述题意,与OJ实际测试用例不同
  • 注意ASCII码表编码规则。
  • 注意数据类型转换的边界值。

ligongzzz's solution

#include <iostream>

using namespace std;

int main() {
    char a, b, c, d;
    int input;
    cin >> input;
    a = input / 1000;
    b = (input % 1000) / 100;
    c = (input % 100) / 10;
    d = (input % 10);
    a = a + 77;
    b = b + 77;
    c = c + 77;
    d = d + 77;
    cout<< a << b << c << d << endl;
    return 0;
}