晚风不度 2023-07-24 20:03 采纳率: 0%
浏览 26

每日一练问题:最大数(语言-c语言)

救命,第一此做题就难住了。这是 7.24 每日一练的题目,自己试着写了很久,感觉没有错,但一直通过不了,自己能想到的例子都试过了没问题。请大家帮忙看一下,写的代码不太规范,还请见谅
题目描述:
给定任意一个数字 m,然后给出数字 n,则需在 m 中去掉 n 位数,保持各位顺序不变的情况下,得到最大数。

输入描述:
输入整数n,m.(1<=n<=1e100,1<=m<=100)

输出描述:
输出删除后的最大数。

**示例 **
输入:1234 2
输出:34


void solution(int arr[2])
{
    int i=0;
    int b[10];
    while(arr[0]%10)
    {
        b[i]=arr[0]%10;
        i++;
        arr[0]=arr[0]/10;
    }
    i--;
    int temp = i;
    int max = 0;
    int flag = 0;
    int sum = 0;
    int n=i;
    while(flag<i+1 - arr[1] && i>0)
    {
        for(int j=temp;j>=i-arr[1]-flag;j--)
        {
            if(j == i){
                if(b[j]>max && j<=temp )
                {
                    max = b[j];
                    temp = j-1;
                    n=j;
                }
            }
                
            else{
                if(b[j]>max && j<=temp )
                {
                    max = b[j];
                    temp = j;
                    if(j==n)max=0;
                    n=j;
                }
            }
        }
        sum = sum*10+max;
        max=0;
        flag++;
    }
    printf("%d",sum);
}

int main() {
    int arr[2];
    
    for (int i = 0; i < 2; i++)
    {
        scanf("%d", &arr[i]);
    }
    
    solution(arr);
    return 0;
}
  • 写回答

3条回答 默认 最新

  • threenewbee 2023-07-24 20:44
    关注
    #include <stdio.h>
    int solution(int arr[])
    {
        int a[10];
        int num = arr[0];
        int n = 0;
        while (num > 0)
        {
            a[n++] = num % 10;
            num /= 10;
        }
        for (int i = 0; i < arr[1]; i++)
        {
            int min = 0;
            for (int j = 0; j < n - i; j++)
            {
                if (a[j] < a[min]) min = j;
            }
            for (int j = min; j < n - i - 1; j++)
            {
                a[j] = a[j + 1];
            }
        }
        int sum = 0;
        for (int i = n - arr[1] - 1; i >= 0; i--)
        {
            sum *= 10;
            sum += a[i];
        }
        return sum;
    }
    
    int main() {
        int arr[2];
        
        for (int i = 0; i < 2; i++)
        {
            scanf("%d", &arr[i]);
        }
        int sum = solution(arr);
        printf("%d",sum);
        return 0;
    }
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月24日

悬赏问题

  • ¥15 python使用selenium工具爬取网站的问题
  • ¥15 visual studio中c语言用ODBC链接SQL SERVER
  • ¥15 关于#python#的问题:如何通过pywinauto获取到图中“窗格”内部的内容
  • ¥15 visionMaster4.3.0 与QT 的二次开发异常
  • ¥50 关于#pcb工艺#的问题:这个设计电路中,最终组合起来起到了什么作用
  • ¥15 鼎捷t100或鼎捷E10生产模块与odoo17详细区别和鼎捷t100或鼎捷E10物料清单(BOM)可以在子级的子级在同一界面操作吗
  • ¥50 VS2019,xamarin框架串口调试报错Java.Lang.SecurityException: Exception of type
  • ¥20 QT如何判断QLineF线鼠标划过事件
  • ¥15 关于#phpstorm#的问题:phpstorm编辑工具 光标选中了就会自动复制到粘贴板上 这样我之前复制的内容就失效了
  • ¥15 pychram安装jupyter插件