使用C语言:给定任意一个数字 m,然后给出数字 n,则需在 m 中去掉 n 位数,保持各位顺序不变的情况下,得到最大数。
时间: 2023-05-19 15:04:20 浏览: 88
以下是一个使用 C 语言实现的解决方案:
```c
#include <stdio.h>
#include <string.h>
int main() {
char m[100], result[100];
int n, len, i, j;
printf("请输入数字 m:");
scanf("%s", m);
printf("请输入需要去掉的位数 n:");
scanf("%d", &n);
len = strlen(m);
// 从左往右扫描,如果当前数字比后面的数字小,则删除当前数字
for (i = 0; i < len && n > 0; i++) {
for (j = i + 1; j < len && n > 0; j++) {
if (m[i] < m[j]) {
n--;
break;
}
}
}
// 将剩余数字复制到结果中
strcpy(result, m + i);
// 如果还需要删除数字,则从右往左扫描,删除最后的数字
while (n > 0) {
len = strlen(result);
result[len - 1] = '\0';
n--;
}
printf("最大数为:%s\n", result);
return 0;
}
```
例如,当输入数字 m 为 123456789,需要去掉的位数 n 为 3 时,输出的最大数为 987。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)