【发布时间】:2022-01-08 01:54:17
【问题描述】:
我一直在尝试将最后一位数字放在第一位,而其他所有数字都在使用循环时保留,但我无法弄清楚。
应该是这样的,例如 1234 => 4123 谢谢。 我已经走到了这一步,但我无法弄清楚如何将我找到的最后一个数字与 % 10 放在数字的第一个位置。
{
int number;
scanf ("%d", &number);
lastDigit = number % 10;
number =
【问题讨论】:
-
欢迎来到 SO。那个sn-p有很多缺失。您至少应该提供一些更完整的代码。详情请见MCVE。
-
另外,请正确格式化您的代码,就像您学习资料中的示例一样。
-
"保留所有其他数字不变" 这不是您的示例中发生的情况。该命令被保留,但它们“移动”到右侧。现在,请注意,要从 1234 获得 123,您只需要 /10,而要从 4 获得 40,您只需 *10...
-
scanf正在将输入读取为字符串并将其转换为整数。您应该将其保留为字符串并以这种方式进行操作。 -
你有最后一个数字;您可以通过除法轻松获得其余数字。然后,您需要计算出剩下的数字有多少,将“最后一个”数字重复乘以 10。然后将相乘的数字加到其余数字上。将该代码写在与
main()不同的函数中。从main()反复调用它。如果函数签名是unsigned rotate(unsigned u);,则int main(void) { unsigned u; while (scanf("%u", &u) == 1) printf("%u --> %u\n", u, rotate(u)); return 0; }用作测试工具。