C语言:交换数字的首位和末位数字

如何编写一个C语言程序来交换数字的首位和末位数字,并附带示例?

C语言:交换数字的首位和末位数字示例

此程序允许用户输入任何数字。然后,它将交换用户输入的数值的首位数字和末位数字。

#include <stdio.h>
#include <math.h>

int main()
{
int Number, FirstDigit, DigitsCount, LastDigit, a, b, SwapNum;

printf("\n Please Enter any Number that you wish : ");
scanf("%d", & Number);

DigitsCount = log10(Number);
FirstDigit = Number / pow(10, DigitsCount);

LastDigit = Number % 10;

a = FirstDigit * (pow(10, DigitsCount));
b = Number % a;
Number = b / 10;

SwapNum = LastDigit * (pow(10, DigitsCount)) + (Number * 10 + FirstDigit);

printf(" \n The Number after Swapping First Digit and Last Digit = %d", SwapNum);

return 0;
}
C Program to Swap First and Last Digit Of a Number 1

对于此“交换数字的首位和末位数字”程序演示,用户输入的数字 = 4578

我们在之前的文章中已经解释了分析部分。因此,请参阅C编程中的首位数字末位数字文章以了解相同内容。

数字位数 = log10(数字) = 3
首位数字 = 4578 / pow(10, 3) = 4578 / 1000 = 4.578 = 4
末位数字 = 4578 % 10 = 8

a = 首位数字 * (pow(10, 数字位数))
a = 4 * pow(10, 3)  = 4 * 1000 = 4000

b = 数字 % a = 4578 % 4000 = 578
数字 = 578 / 10 = 57.8 = 57

交换后的数字 = 末位数字 * (pow(10, 数字位数)) + (数字 * 10 + 首位数字)
交换后的数字 = 8 * pow(10, 3) + (57 * 10 + 4)
交换后的数字 = 8000 + (570 + 4) = 8574

C语言:交换数字的首位和末位数字示例 2

程序也允许用户输入任何数字,然后交换数字的首位和末位数字

#include <stdio.h>
#include <math.h>

int main()
{
int Number, FirstDigit, DigitsCount, LastDigit, a, b, SwapNum;

printf("\n Please Enter any Number that you wish : ");
scanf("%d", & Number);

DigitsCount = log10(Number);
FirstDigit = Number / pow(10, DigitsCount);

LastDigit = Number % 10;

SwapNum = LastDigit;
SwapNum = SwapNum * (round(pow(10, DigitsCount)));
SwapNum = SwapNum + Number % (int)(round(pow(10, DigitsCount)));
SwapNum = SwapNum - LastDigit;
SwapNum = SwapNum + FirstDigit;

printf(" \n The Number after Swapping First Digit and Last Digit = %d", SwapNum);

return 0;
}
 Please Enter any Number that you wish  : 95371
 
 The Number after Swapping First Digit and Last Digit =  15379

从上面的“交换数字的首位和末位数字”程序示例中,您可以看到用户输入的数值 = 95371。

数字位数 = 4
首位数字 = 9
末位数字 = 1
交换后的数字 = 末位数字 = 1

交换后的数字 = 交换后的数字 * (round(pow(10, 数字位数))) = 1 * pow(10, 4) = 10000。
交换后的数字 = 交换后的数字 + 数字 % (round(pow(10, 数字位数))).
交换后的数字 = 10000 + (95371 % pow(10, 4))。
交换后的数字 = 10000 + 95371 % 10000 = 10000 + 5371 = 15371。
交换后的数字 = 交换后的数字 – 末位数字 = 15371 – 1 = 15370。
交换后的数字 = 交换后的数字 + 首位数字 = 15370 + 9 = 15379。