c++写一个分开三位数个位,十位,百位
时间: 2023-03-30 09:00:34 浏览: 174
我可以回答这个问题。如果给定一个三位数,例如123,可以用以下代码分别输出它的个位、十位和百位:
int num = 123;
int bai = num / 100; // 百位
int shi = num % 100 / 10; // 十位
int ge = num % 10; // 个位
输出结果为:百位是1,十位是2,个位是3。
相关问题
写一个三位数的逆序数c++代码
这是一个 Python 代码示例,用于计算三位数的逆序数 c。
num = int(input("请输入一个三位数:"))
# 将三位数拆分为百位、十位、个位
a = num // 100
b = num // 10 % 10
c = num % 10
# 计算逆序数
reverse = c * 100 + b * 10 + a
print("逆序数为:", reverse)
c++写一个找中位数的代码
以下是使用快速选择算法(Quickselect Algorithm)找到一个数组的中位数的 C 代码:
```c
#include <stdio.h>
// 快速选择算法
int quickSelect(int arr[], int left, int right, int k) {
if (left == right) {
return arr[left];
}
int i = left, j = right;
int pivot = arr[(left + right) / 2];
while (i <= j) {
while (arr[i] < pivot) {
i++;
}
while (arr[j] > pivot) {
j--;
}
if (i <= j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
}
if (left + k - 1 <= j) {
return quickSelect(arr, left, j, k);
}
if (left + k - 1 >= i) {
return quickSelect(arr, i, right, k - (i - left));
}
return arr[j + 1];
}
// 计算中位数
int median(int arr[], int n) {
if (n % 2 == 0) {
return (quickSelect(arr, 0, n - 1, n / 2) +
quickSelect(arr, 0, n - 1, n / 2 + 1)) / 2;
} else {
return quickSelect(arr, 0, n - 1, n / 2 + 1);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("数组的中位数为:%d", median(arr, n));
return 0;
}
```
该代码先使用快速选择算法找到数组中第 `n/2+1` 小的数,然后如果数组长度为偶数,再找到第 `n/2` 小的数,最后计算它们的平均值作为中位数。