永发信息网

C语言编程实现:从N位数字串中删掉M个数使剩下的数字串所表示的数值最小。

答案:2  悬赏:0  手机版
解决时间 2021-03-06 21:01
C语言编程实现:从N位数字串中删掉M个数使剩下的数字串所表示的数值最小。
最佳答案
#include
#include

void deletechar(char *s, char c)
{
char *p;
while(p=strchr(s,c))
{
while(*p)
{
*p=*(p+1);
p++;
}
*(--p)='\0';
}
}

main()
{
int m,n,i,j;
char *s;
char max;
clrscr();

gets(s);
n=strlen(s);
scanf("%d",&m);
if(m>=n)
return(0);

for(i=0;i {
for(j=0;j if(s[j]>s[j+1])
{
max=s[j];
break;
}
if (j==strlen(s)-1) max=s[j];

deletechar(s,max);
}

printf("%s",s);

getch();
}
全部回答
算法:例如五位数去除两个数, 先比较前三(5-2)位数的大小, 若第三个数最小,去掉前两位数即可。 若第二个数最小,去掉前一位数,比较其后两位数大小, 若第二个数最小,去掉第一位数, 反之,去掉第一位数。 若第一个数最小,考虑其后三位数的大小, 若第三个数最小,去掉其前两位数即可。 若第二个数最小,去掉其前一位数,比较其后两位数大小 若第二个数最小,次掉第一位数, 反之,去掉第二位数。 若第一个数最小,考虑其后三位数大小, 若第几个数最小,去掉剩余两位即可。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在JS中点击删除按钮删除文本框最后一个数值
支教 是什么意思
您的邮件于 2010-08-20 10:00:00(西安市纺织
阆州南楼我想知道这个在什么地方
你是自私的英语怎么说
设计一个函数,计算“S=1-2+3-4+5-6+...+/-N”
兔子摔了,怎么办
3.6×4-2.5怎么简便计算
电脑弹出一个黑框一个女人图片一排英文字是不
鸣雁宾馆停车场我想知道这个在什么地方
求西铁城光动能JY0050-55L手表中文说明书
高光笔怎么弄掉双下巴
我的易信里面,怎么不能玩偶遇,老是显示获取
清网行动中罗今今和鲁齐鸣是什么关系
金堂县隆盛希望学校地址在哪,我要去那里办事
推荐资讯
这对AJ2要多少钱
混凝土C20和32.5水呢哪个硬度高
毛线怎么绣鞋垫
喜悦福苑地址在什么地方,想过去办事
完美世界国际版什么职业不花钱
魔幻陀螺绳子怎么安装
安康中医院怎么样?待遇如何?
知道自己喜欢的人有女朋友是一种怎样的体验
连续可微函数是什么意思?
买保险平安福和智悦人生哪个更好?
埃美柯怎么样?
帮我查一下1999年7月25日生的人有什么样的命
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?