【问题描述】 从键盘输入一个5位正整数num,和一个5以内的正整数n,其中n代表对num进行左移的位数,从高位移出的数补在低位上。 备注:输出移位后的数字若不是5位数,那输出时在前面补0,凑齐5位数字。 【输入形式】 两个用空格分隔的正整数。 【输出形式】 一个由数字组成的字符串。 【样例输入1】 12345 2 第1个数为5位的正整数,第2个数为左移的位数。 【样例输出1】 34512 【样例输入2】 10000 1 第1个数5位的正整数,第2个数为左移的位数。 【样例输出2】 00001用C语言
时间: 2024-03-17 19:47:13 浏览: 94
输入一个正整数,判断是不是素数(C++)
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void left_shift(char *num, int n)
{
int len = strlen(num);
// 移位操作
for (int i = 0; i < n; i++) {
char c = num[0];
for (int j = 0; j < len - 1; j++) {
num[j] = num[j + 1];
}
num[len - 1] = c;
}
// 补齐 0
for (int i = 0; i < 5 - len; i++) {
printf("0");
}
printf("%s\n", num);
}
int main()
{
char num[6];
int n;
scanf("%s %d", num, &n);
left_shift(num, n);
return 0;
}
```
输入一个 5 位正整数 `num` 和一个 5 以内的正整数 `n`,其中 `n` 代表对 `num` 进行左移的位数,从高位移出的数补在低位上。输出移位后的数字,若不是 5 位数,那输出时在前面补 0,凑齐 5 位数字。
例如输入 `12345 2`,输出 `34512`。再例如输入 `10000 1`,输出 `00001`。
注意,输入的数字可能以 0 开头,需要使用字符串类型来读入并处理。
阅读全文