n<=-100000或n>=100000则printf(“ERROR”)
若输出入为-12345则输出为-54321
#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;
}
可以使用字符串反转的思想来实现逆序输出一个整数。具体步骤如下:
以下是具体的代码实现及相关提示:
#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