用C++交换一个十进制整数(11-99)的个位和十位的数值,输出结果。例如:输入整数12,输出整数21
时间: 2024-10-19 19:12:52 浏览: 28
在C++中,你可以通过位运算来完成这个任务,不需要创建额外的变量。以下是一个简单的函数来实现这个功能:
```cpp
#include <iostream>
int swapDecimalDigits(int num) {
// 将十位和个位分开
int digit1 = num % 10; // 取个位
int digit2 = (num / 10) % 10; // 取十位并取余
// 再将数字组合起来,个位变成十位,十位变回原个位
num = ((digit2 * 10) + digit1);
return num;
}
int main() {
int input;
std::cout << "请输入一个11到99之间的整数: ";
std::cin >> input;
if (input >= 11 && input <= 99) {
int result = swapDecimalDigits(input);
std::cout << "交换后的整数为: " << result << std::endl;
} else {
std::cout << "输入错误,需在11到99之间!" << std::endl;
}
return 0;
}
```
当你运行程序并输入12时,它会输出21。
相关问题
用c++输出:将十进制整数转换16进制
在C++中,你可以使用内置的`std::hex`流操纵符和`std::setw`来格式化输出十进制整数到十六进制。下面是一个简单的示例:
```cpp
#include <iostream>
#include <iomanip>
int main() {
int decimal_num = 12345; // 需要转换的十进制数
std::cout << "Decimal Number: " << decimal_num << std::endl;
std::cout << "Hexadecimal Representation: ";
std::cout << std::setfill('0') << std::hex << decimal_num << std::endl;
return 0;
}
```
当你运行这段代码,它会输出:
```
Decimal Number: 12345
Hexadecimal Representation: 0x3039
```
这里`std::hex`将标准输出设置为十六进制模式,`std::setfill('0')`确保不足四位的数字前面补足零。
运用c++编写1. 利用顺序栈将一个十进制整数转换成八进制整数,要求输入一个十进制数,输出一个八进制数; 2 利用链栈将一个十进制整数转换成二进制整数,要求输入一个十进制数,输出一个二进制数;
1. 要利用C++的顺序栈(也叫数组栈)将十进制整数转换为八进制,你可以按照以下步骤操作:
```cpp
#include <iostream>
#include <stack>
using namespace std;
// 将十进制转换为8进制的辅助函数
string decimalToOctal(int num) {
stack<char> octalStack;
while (num > 0) {
int remainder = num % 8; // 取余数得到当前位的值
octalStack.push(char(remainder + '0')); // 把字符推入栈
num /= 8; // 更新数值
}
string result = ""; // 初始化结果字符串
while (!octalStack.empty()) {
result = octalStack.top() + result;
octalStack.pop(); // 弹出栈顶元素
}
return result;
}
int main() {
int decimalInput;
cout << "请输入一个十进制整数: ";
cin >> decimalInput;
cout << "其对应的八进制数是: " << decimalToOctal(decimalInput) << endl;
return 0;
}
```
2. 使用链栈(链表作为底层数据结构)将十进制整数转换为二进制,则需要构建一个链表节点,并遍历数字的每一位:
```cpp
#include <iostream>
using namespace std;
// 链栈节点结构体
struct Node {
int value;
Node* next;
};
// 链栈辅助函数
void push(Node** head, int val) {
Node* newNode = new Node();
newNode->value = val;
newNode->next = *head;
*head = newNode;
}
// 将十进制转二进制并链式存储
Node* decimalToBinary(int num) {
if (num == 0) {
return new Node{0, nullptr};
}
Node* current = decimalToBinary(num / 2);
current->next = new Node{(num % 2), nullptr};
return current;
}
int main() {
int decimalInput;
cout << "请输入一个十进制整数: ";
cin >> decimalInput;
Node* root = decimalToBinary(decimalInput);
cout << "其对应的二进制数是: ";
Node* temp = root;
while (temp != nullptr) {
cout << temp->value;
temp = temp->next;
}
cout << endl;
return 0;
}
```
上述代码演示了如何分别使用顺序栈和链栈实现十进制到八进制和二进制的转换。
阅读全文
相关推荐
















