永发信息网

Problem C: 求最大值和最小值 Time Limit: 1 Sec Memory Li

答案:2  悬赏:60  手机版
解决时间 2021-02-28 08:40
  • 提问者网友:凉末
  • 2021-02-27 09:19
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整数的数值上限,因此应该用字符串把输入存储下来,进行大小的判断
最佳答案
  • 五星知识达人网友:人间朝暮
  • 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; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯