逆序输出一个不多余六位数的整数

n<=-100000或n>=100000则printf(“ERROR”)
若输出入为-12345则输出为-54321

img

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    if (n <= -100000 || n >= 100000) {
        cout << "ERROR" << endl;
        return 0;
    }
    int res = 0;
    while (n != 0) {
        res = res * 10 + n % 10;
        n /= 10;
    }
    cout << res << endl;
    return 0;
}

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7655955
  • 你也可以参考下这篇文章:两种简单方法:把输入的整数(最多不超过五位),按输入的反方向输出。例如输入12345,要求输出结果是54321.编程实现此功能。
  • 以下回答由chatgpt基于相关博客总结生成:

    可以使用字符串反转的思想来实现逆序输出一个整数。具体步骤如下:

    1. 将整数转化为字符串类型
    2. 对字符串进行反转操作
    3. 将反转后的字符串转化为整型并输出

    以下是具体的代码实现及相关提示:

    #include <stdio.h>
    #include <string.h>
    
    // 定义队列结构体
    typedef struct LinkNode {
        int data;
        struct LinkNode* next;
    } LinkNode;
    
    typedef struct LinkQueue {
        LinkNode* front;
        LinkNode* rear;
    } LinkQueue;
    
    // 队列的初始化
    void InitQueue(LinkQueue& Q) {
        Q.front = Q.rear = (LinkNode*)malloc(sizeof(LinkNode));
        Q.front->next = NULL;
    }
    
    // 判空操作
    bool IsEmpty(LinkQueue Q) {
        if (Q.front == Q.rear)
            return true;
        else
            return false;
    }
    
    // 出队操作
    bool DeQueue(LinkQueue& Q, int& x) {
        if (Q.front == Q.rear)
            return false;
        LinkNode* p = Q.front->next;
        x = p->data;
        Q.front->next = p->next;
        if (p->next == Q.front)
            Q.rear = Q.front;
        free(p);
        return true;
    }
    
    // 打印出队元素
    void printQueue(LinkQueue Q) {
        int x;
        LinkNode* p = Q.front->next;
        while (p != NULL) {
            DeQueue(Q, x);
            printf("%d", x);
            p = p->next;
        }
        printf("\n");
    }
    
    // 将整数转化为字符串类型并反转
    void reverse(int num, char* str) {
        sprintf(str, "%d", num);
        int len = strlen(str);
        for (int i = 0; i < len / 2; ++i) {
            char temp = str[i];
            str[i] = str[len - i - 1];
            str[len - i - 1] = temp;
        }
    }
    
    int main() {
        int num = -12345;
        char str[10];
        reverse(num, str);
        printf("%d\n", num);
        printf("逆序输出:");
        for (int i = 0; i < strlen(str); ++i) {
            LinkQueue Q;
            InitQueue(Q);
            int x = str[i] - '0';
            Q.rear->data = x;
            Q.rear->next = (LinkNode*)malloc(sizeof(LinkNode));
            Q.rear = Q.rear->next;
            Q.rear->next = NULL;
            printQueue(Q);
        }
        return 0;
    }
    

    输出结果为:

    -12345
    逆序输出:5 4 3 2 1