输入一个正整数,将各位上的数字循环左移一位,最高位移出填补到最低位
时间: 2024-05-23 21:15:37 浏览: 15
抱歉,我可以回答这个问题。可以将该正整数转换为字符串,然后对字符串进行操作,具体步骤如下:
1. 将字符串的第一个字符保存到一个变量temp里面
2. 循环移动字符串中的每个字符,将当前字符赋值给前一个字符
3. 将temp的值赋值给字符串的最后一个字符
4. 重复2-3步n次,即将字符串左移n位
最后将字符串转换为整数即可。
相关问题
用C语言键盘输入一个正整数,将各位上的数字循环左移一位,最高位移出填补到最低位,形成新数并输出。
您好,这是一道关于循环左移的C语言问题,可以用以下代码实现:
```c
#include <stdio.h>
int main() {
int n, temp;
scanf("%d", &n);
temp = n / 100000; // 取出最高位
n = (n % 100000) * 10 + temp; // 左移一位并将最高位添加到最低位
printf("%d\n", n);
return 0;
}
```
输入一个6位的正整数,程序会将各位上的数字循环左移一位,并输出新数。如输入`123456`,输出`234561`。
请问还有其他需要回答的问题吗?
写出键盘输入一个正整数,将各位上的数字循环左移一位,最高位移出填补到最低位,形成新数并输出。的代码
int main()
{
int num, digit, new_num;
printf("请输入一个正整数:");
scanf("%d", &num);
digit = log10(num) + 1; // 求出数字的位数
new_num = (num % 10) * pow(10, digit - 1) + num / 10; // 将最高位移出填补到最低位
printf("左移一位后的数字为:%d\n", new_num);
return 0;
}