输入一个数字,从其中删除一位使得余下的数字是最大的,并输出。C语言实现

12345去掉1得2345;4541014去掉高位4得54101... 12345 去掉1 得 2345;
4541014 去掉高位4 得 54101
展开
 我来答
百度网友1fc36d4
2012-04-12 · TA获得超过3128个赞
知道大有可为答主
回答量:1497
采纳率:100%
帮助的人:1807万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int MaxInteger(char *Str)
{
char Buf[50];
char *s=Str,*p=Buf;
int value;
if(Str==NULL) return 0;
if(strlen(Str)==1) return 0;
if(*(s+1)&&*(s+1)>*s)
{
s++;
value=atoi(s);
}
else
{
*p++=*s++;
while(*(s+1)&&*s>*(s+1)) *p++=*s++;
s++;
while(*s) *p++=*s++;
*p='\0';
value=atoi(Buf);
}
return value;
}

int main()
{
char Str[50];
int Data;
gets(Str);
Data=MaxInteger(Str);
printf("%d\n",Data);
system("pause");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
biosorry
2012-04-12 · TA获得超过7074个赞
知道大有可为答主
回答量:2546
采纳率:78%
帮助的人:795万
展开全部
#include "stdio.h"
int p(int x)
{
int i=1;
int y=10;
if(x==0)
return 1;
while(i<x)
{
y*=10;
i++;
}
return y;
}

void main()
{
int a,b,i;
int n=0;
int max=0;
printf("Input:");
scanf("%d",&a);
b=a;
while(b>0)
{
b/=10;
n++;
}
for(i=0;i<n;i++)
{
if(a/p(i+1)*p(i)+a%p(i)>max)
max=a/p(i+1)*p(i)+a%p(i);
}
printf("%d\n",max);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式