c++:输入一个1000(不包含1000)以内的正整数,首先将其补齐为三个数字(如果是两位数或者一位数,则前面补0),然后将这三个数字按不同顺序排列成一组数据,输出排列中最大的那个数。
时间: 2023-06-04 07:06:18 浏览: 100
对于这个问题,我可以回答。根据题目描述,我们需要将输入的数字按不同顺序排列成一组数据,并输出排列中最大的那个数。具体的做法可以将输入的数字转化为字符串,然后补齐前导零,再将字符串转为数字,并存入一个数组中。最后,可以使用sort函数对数组进行排序,并输出最后一个元素,即为排列中最大的那个数。以下是示例代码:
```
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
int num, arr[3], i = 0;
cin >> num;
while (num > 0) {
arr[i++] = num % 10;
num /= 10;
}
while (i < 3) arr[i++] = 0;
sort(arr, arr + 3);
cout << arr[2] * 100 + arr[1] * 10 + arr[0] << endl;
return 0;
}
```
相关问题
写一个C++程序输入一个三位的正整数,输出其个、十、百位的数字
您好,我可以回答您的问题。以下是C语言程序的代码:
#include <stdio.h>
int main() {
int num, digit1, digit2, digit3;
printf("请输入一个三位的正整数:");
scanf("%d", &num);
digit1 = num % 10; // 个位
digit2 = num / 10 % 10; // 十位
digit3 = num / 100; // 百位
printf("个位数字为:%d\n", digit1);
printf("十位数字为:%d\n", digit2);
printf("百位数字为:%d\n", digit3);
return ;
}
希望能帮到您!
用C++实现给定一个不超过1000位的正整数N,统计0-9各数字出现的次数
可以使用数组来统计每个数字出现的次数。具体实现如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char num[1001]; // 存储输入的数字
int count[10]; // 统计每个数字出现的次数
memset(count, 0, sizeof(count)); // 将count数组全部初始化为0
cin >> num; // 输入数字
int len = strlen(num); // 获取数字的长度
for (int i = 0; i < len; i++) {
count[num[i] - '0']++; // 统计数字出现的次数
}
for (int i = 0; i < 10; i++) {
cout << i << ": " << count[i] << endl; // 输出每个数字出现的次数
}
return 0;
}
```
在输入一个不超过1000位的正整数后,程序会统计数字0-9各出现的次数,并输出结果。