如何编写一个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;
}

对于此“交换数字的首位和末位数字”程序演示,用户输入的数字 = 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。