Problem C: 求最大值和最小值
Time Limit: 1 Sec Memory Limit: 4 MB
Submit: 3205 Solved: 864
[Submit][Status][Web Board]
Description
求出一些整数中的最大值和最小值。
Input
输入为多行,以EOF结束。每行为一个十进制的数字,全部由0~9组成,每行最长不超过1000个字符。有些数字会以0开头(不影响数值大小的前导0)。
Output
输出为输入中的最大值和最小值,格式见sample。
Sample Input
02
010
0012
012
23
Sample Output
The maximum value is : 23
The minimum value is : 2
HINT
由于输入已经超过64bit整数的数值上限,因此应该用字符串把输入存储下来,进行大小的判断
Problem C: 求最大值和最小值 Time Limit: 1 Sec Memory Li
答案:2 悬赏:60 手机版
解决时间 2021-02-28 08:40
- 提问者网友:凉末
- 2021-02-27 09:19
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-02-27 09:30
没看懂什么意思?
全部回答
- 1楼网友:傲气稳了全场
- 2021-02-27 09:36
#include<stdio.h>
#include<string.h>
char a[2000];
char max[2000];
char min[2000];
char l[2000];
int main()
{
int i,j,k,m;
memset(l,0,sizeof(l));
memset(a,0,sizeof(a));
memset(max,0,sizeof(max));
memset(min,0,sizeof(min));
j=-1;
k=9999;
while(scanf("%s",l)!=EOF)
{
memset(a,0,sizeof(a));
for(i=0; i<=strlen(l)-1; i++)
a[i]=l[strlen(l)-1-i];
memset(l,0,sizeof(l));
i=strlen(a)-1;
while(a[i]=='0')
{
a[i]='\0';
i--;
}
i=strlen(a)-1;
if(i>j)
{
memset(max,0,sizeof(max));
strcpy(max,a);
j=strlen(max)-1;
}
if(i==j)
{
m=i;
while(m>=0 && a[m]==max[m])
m--;
if(m==-1 && a[0]>max[0])
{
memset(max,0,sizeof(max));
strcpy(max,a);
j=strlen(max)-1;
}
if(m!=-1 && a[m]>max[m])
{
memset(max,0,sizeof(max));
strcpy(max,a);
j=strlen(max)-1;
}
}
if(i<k)
{
memset(min,0,sizeof(min));
strcpy(min,a);
k=strlen(min)-1;
}
if(i==k)
{
m=i;
while(m>0 && a[m]==min[m])
m--;
if(m==-1 && a[0]<min[m])
{
memset(min,0,sizeof(min));
strcpy(min,a);
k=strlen(min)-1;
}
if(m!=-1 && a[m]<min[m])
{
memset(min,0,sizeof(min));
strcpy(min,a);
k=strlen(min)-1;
}
}
}
if(j==-1)
printf("The maximum value is : 0");
else
{
printf("The maximum value is : ");
for(m=j; m>=0; m--)
printf("%c",max[m]);
}
printf("\n");
if(k==-1)
printf("The maximum value is : 0");
else
{
printf("The maximum value is : ");
for(m=k; m>=0; m--)
printf("%c",min[m]);
}
printf("\n");
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯