求出一些整数中的最大值和最小值。
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
代码如下:
#include<stdio.h>
#include<string.h>
int remove1(char *a,int len){//去除0的函数
int l = len;
for(int i=0;i<l;i++){
if(i==0&&l!=1){//控制l的大小,防止全是0的现象
if(a[i]=='0'){
for(int j=i;j<l-1;j++){
a[j] = a[j+1];
}
i--;
l--;
}
}
}
for(int i=l;i<len;i++){//把l后面的空间置空
a[i] = '\0';
}
return l;
}
int main()
{
char a[1001];
char min[1001] = "";
char max[1001] = "";
scanf("%s",a);
getchar();
int len = remove1(a,strlen(a));
strcpy(min,a);//初始化
strcpy(max,a);
while(scanf("%s",a)!=EOF){
getchar();
int len1 = remove1(a,strlen(a));
if(len1==strlen(max)){ //判断
int j = strcmp(max,a);
if(j==-1){
strcpy(max,a);
}
}
if(len1==strlen(min)){
int k = strcmp(min,a);
if(k==1){
strcpy(min,a);
}
}
if(len1>strlen(max)){
strcpy(max,a);
}
if(len1<strlen(min)){
strcpy(min,a);
}
}
printf("The maximum value is : %s\n",max);
printf("The minimum value is : %s\n",min);
}
另一种思路:
#include<stdio.h>
#include<string.h>
int remove1(char *a,int len)
{
int l = len;
for(int i=0;i<l;i++){
if(i==0&&l!=1){
if(a[i]=='0'){
for(int j=i;j<l-1;j++){
a[j] = a[j+1];
}
i--;
l--;
}
}
}
return l;
}
int equal(char*a,char*b,int len)
{
for(int i=0;i<len;i++){
b[i] = a[i];
}
}
int min1(char*a,int n)
{
for(int i=0;i<n;i++){
printf("%c",a[i]);
}
return 0;
}
int main()
{
char a[1001];
char aa[1001];
char c[200] = "\0";
char min[1001] = "";
char max[1001] = "";
scanf("%s",a);
int m;
getchar();
int len = remove1(a,strlen(a));
strncpy(aa,a,len);
strcpy(min,aa);
strcpy(max,aa);
while(scanf("%s",a)!=EOF){
getchar();
int len1 = remove1(a,strlen(a));
char aaa[1001] = "\0";
strncpy(aaa,a,len1);
if(len1==strlen(max)){
int j = strcmp(max,aaa);
if(j==-1){
strcpy(max,aaa);
}
}
if(len1==strlen(min)){
int k = strcmp(min,aaa);
if(k==1){
strcpy(min,aaa);
}
}
if(len1>strlen(max)){
strcpy(max,aaa);
}
if(len1<strlen(min)){
strcpy(min,aaa);
}
}
printf("The maximum value is : %s\n",max);
printf("The minimum value is : %s\n",min);
}