用C语言键盘输入一个正整数,将各位上的数字循环左移一位,最高位移出填补到最低位,形成新数并输出。
时间: 2024-04-30 15:24:01 浏览: 104
您好,这是一道关于循环左移的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`。
请问还有其他需要回答的问题吗?
相关问题
用C语言键盘输入一个正整数,将各位上的数字循环左移一位,最高位移出填补到最低位,形成新数并输出。要求无论几位数都可以运行
以下是用 C 语言编写的代码:
```
#include <stdio.h>
int main() {
int n, m, digit;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("请输入要循环左移的位数:");
scanf("%d", &m);
int temp = n;
int length = 0;
while (temp > 0) {
length++;
temp /= 10;
}
for (int i = 0; i < m; i++) {
digit = n / pow(10, length - 1);
n = (n % (int)pow(10, length - 1)) * 10 + digit;
}
printf("左移 %d 位后的结果为:%d", m, n);
return 0;
}
```
当然,这只是一种解法,具体实现方式可以有很多种。
阅读全文