将数字123变成321,c语言
时间: 2024-09-11 15:15:17 浏览: 51
在C语言中,如果你想要将一个三位数的十进制整数如123反转为321,你可以使用一些基本的数学操作和数组来实现。这里是一个简单的例子:
```c
#include <stdio.h>
int reverseNumber(int num) {
int reversed = 0;
int remainder;
while (num != 0) {
remainder = num % 10; // 取最后一位
reversed = reversed * 10 + remainder; // 把余数加到reversed的左边
num /= 10; // 移除最后一位
}
return reversed;
}
int main() {
int input = 123;
int result = reverseNumber(input);
printf("123 反转后为: %d\n", result);
return 0;
}
```
在这个程序中,`reverseNumber`函数通过不断地取数字的个位、把它们加到结果的前面,并更新原数字,实现了数字的反转。
相关问题
c语言把321变成123
C语言本身并没有直接的内置函数可以把数字"321"变成"123",因为它们是字符型(char),而非数值型(如int)。如果你需要进行这样的转换,通常需要先将字符串转换为整数数组,然后通过循环或者其他操作来重组数字顺序。
你可以通过以下步骤实现:
1. 定义一个包含三个元素的字符数组,存储"321"。
2. 使用`atoi()`函数或者手动遍历字符,将每个字符转换为整数。
3. 创建一个新的数组用于存放结果,并按照目标顺序放入转换后的数字。
4. 如果需要,再将这个新数组转换回字符串。
这里是一个简单的示例(仅适用于ASCII值的简单交换):
```c
#include <stdio.h>
#include <string.h>
void swap(char* str, int index1, int index2) {
char temp = str[index1];
str[index1] = str[index2];
str[index2] = temp;
}
int main() {
char input[] = "321";
int len = strlen(input);
for (int i = 0; i < len - 1; i++) {
if (input[i + 1] < input[i]) {
swap(input, i, i + 1); // 交换当前位和下一个位,如果当前位较大
}
}
printf("Reversed string: %s\n", input); // 输出转换后的字符串
return 0;
}
```
输入一个不小于 100 100 且小于 1000 1000,同时包括小数点后一位的一个浮点数,例如 123.4 123.4 ,要求把这个数字翻转过来,变成 4.321 4.321 并输出。c语言
以下是C语言的代码实现:
```
#include <stdio.h>
int main() {
float num, reversed_num = 0;
printf("请输入一个不小于100且小于1000的浮点数(保留小数点后一位):");
scanf("%f", &num);
// 求出整数部分和小数部分
int integer_part = (int)num;
int decimal_part = (int)((num - integer_part) * 10);
// 翻转整数部分
while (integer_part > 0) {
reversed_num = reversed_num * 10 + integer_part % 10;
integer_part /= 10;
}
// 将小数部分添加到翻转后的整数部分后面
reversed_num += (float)decimal_part / 10;
printf("翻转后的数为:%.1f", reversed_num);
return 0;
}
```
运行程序后,会提示用户输入一个不小于100且小于1000的浮点数,程序会将输入的数分为整数部分和小数部分,然后将整数部分翻转,最后再将小数部分添加到翻转后的整数部分后面,输出翻转后的数。
阅读全文