3 条题解

  • 0
    @ 2024-11-23 16:34:27

    使用字符串比较,先判断正负号,再比较位数,注意两数都为负数时的比较;

    • 0
      @ 2023-10-23 15:24:54
      #include<stdio.h>
      #include<string.h>
      int i,j,lennum1,lennum2;
      char num1[10009],num2[10009];
      int main(void){
      	while(1){
      		scanf("%s %s",num1,num2);
      		if(strcmp(num1,"0")==0 && strcmp(num2,"0")==0){
      			break;
      		}
      		if(strcmp(num1,num2)==0){
      			printf("a==b\n");
      		}else{
      		lennum1=strlen(num1);
      		lennum2=strlen(num2);
      		if(num1[0]=='-' && num2[0]!='-'){
      			printf("a<b\n");
      		}
      		if(num1[0]!='-' && num2[0]=='-'){
      			printf("a>b\n");
      		}
      		if(num1[0]=='-' && num2[0]=='-'){
      			if(lennum1>lennum2){
      				printf("a<b\n");
      			}
      			if(lennum1<lennum2){
      				printf("a>b\n");
      			}
      			if(lennum1==lennum2){
      				for(i=lennum1-1;i>0;i--){
      					if(num1[i]>num2[i]){
      						printf("a<b\n");
      						break;					
      					}
      					if(num1[i]<num2[i]){
      						printf("a>b\n");
      						break;
      					}
      				}
      			}
      		}
      		if(num1[0]!='-' && num2[0]!='-'){
      			if(lennum1>lennum2){
      				printf("a>b\n");
      			}
      			if(lennum1<lennum2){
      				printf("a<b\n");
      			}
      			if(lennum1==lennum2){
      				for(i=lennum1-1;i>=0;i--){
      					if(num1[i]>num2[i]){
      						printf("a>b\n");
      						break;					
      					}
      					if(num1[i]<num2[i]){
      						printf("a<b\n");
      						break;
      					}
      				}
      			}
      		}	
      	}
      	}
      }
      
      • 0
        @ 2023-10-9 21:00:12
        #include<stdio.h>
        #include<string.h>
        int main()
        {
            char a[1000]= {0},b[1000]= {0};
            while(scanf("%s%s",a,b)!=EOF)
            {
                if(a[0]=='0'&&b[0]=='0')
                    break;
                int i,j,k,l,max,t=2;
                k=strlen(a);
                l=strlen(b);
                if(a[0]=='-'&&b[0]!='-')
                    t=1;
                else if(a[0]!='-'&&b[0]=='-')
                    t=0;
                else if(a[0]!='-'&&b[0]!='-')
                {
                    if(k>l)
                        t=0;
                    if(k<l)
                        t=1;
                    if(k==l)
                    {
                        for(i=0; i<l; i++)
                        {
                            if(a[i]>b[i])
                            {
                                t=0;
                                break;
                            }
                            if(a[i]<b[i])
                            {
                                t=1;
                                break;
                            }
                        }
                    }
                }
                else
                {
                    if(k>l)
                        t=1;
                    if(k<l)
                        t=0;
                    if(k==l)
                    {
                        for(i=0; i<l; i++)
                        {
                            if(a[i]>b[i])
                            {
                                t=1;
                                break;
                            }
                            if(a[i]<b[i])
                            {
                                t=0;
                                break;
                            }
                        }
                    }
                }
                if(t==0)
                    printf("a>b\n");
                if(t==1)
                    printf("a<b\n");
                if(t==2)
                    printf("a==b\n");
            }
        }
        
        • 1

        信息

        ID
        150
        时间
        3000ms
        内存
        128MiB
        难度
        8
        标签
        (无)
        递交数
        1473
        已通过
        200
        上传者