| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1331 人关注过本帖
标题:C语言 删数问题
只看楼主 加入收藏
周四C语言
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-11-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
C语言 删数问题
输入一个高精度的大正整数S(S最长可达240位),去掉其中任意N位数字后剩下的数字按原次序组成一个新的正整数S’。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数S’最小。

现在我用到的思路是:每次从左往右读到第一个是s[i-1]<s[i]>s[i+1]时跳过它不输出,可是两端的数字字符怎么处理呢?  求教!
搜索更多相关主题的帖子: 编程 C语言 正整数 
2011-11-17 10:31
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:20 
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    int i,j,k,n;
    scanf("%d",&n);
    while(n--)
    {
        char bit[10000] = {0};
        int len,s,min = 0;      
        scanf("%d%d",&len,&s);
        int r = len-s;
        scanf("%s",bit);
        for(i = 0;i<r;i++)
        {
            for(j = min;len-j>r-i-1;j++)
                if(bit[j]<bit[min] && (bit[j]!='0'||i!=0))
                    min = j;
            putchar(bit[min++]);
        }
        printf("\n");
    }
    return 0;
}
http://www.
很简答的一个题 思路是要保留下s-n个数 那就先保证后面有s-n-1个然后在前面找到一个最小的留下
然后在从选择的那个开始保证后面有s-n-2个在找到一个最小的留下。。。


                                         
===========深入<----------------->浅出============
2011-11-17 10:45
周四C语言
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-11-17
收藏
得分:0 
回复 2楼 laoyang103
先谢楼上的了~可是我现在想解决的思路是:每次找从左往右第一个满足a[i-1]<a[i]>a[i+1]的数,跳过,这种思路也可行,但我有几个问题。
1.两端的数怎么处理
2.#include <stdio.h>
#include <string.h>
int main()
{
    char s[240];
    int i,n,j,m;
    i=0;                 
    scanf("%s",&s);                /*将输入的字符串里的字符依次存到s[i]中*/
    m=strlen(s);                   /*记下字符串的长度    */
    scanf("%d\n",&n);
    for(j=0;j<m;j++)
    {
        if(s[j]>s[j-1]&&s[j]>s[j+1]&&i<=m-n)                    
            continue;                          /*每次遇到比两边的数都大的数,跳出来,不输出*/
            printf("%c",s[j]);
            i++;                                /*每输出一个数输一次,输到m-n时停止*/
    }
    return 0;
}
这是我的程序,根本就没有运行结果,不明白怎么回事。

我现在不是求答案,是求解决问题啊,请教!
2011-11-17 11:01
快速回复:C语言 删数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055577 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved