oj10.2的答案及一些想法

来源:互联网 发布:相貌测试软件下载 编辑:程序博客网 时间:2024/04/29 21:57
#include<stdio.h>#include<string.h>void compare(int x,int y,int z);void swap(int *m,int *n);int main(){    char A[50],b[50],c[50];    gets(A);    gets(b);    gets(c);    int x,y,z;    x=strlen(A);    y=strlen(b);    z=strlen(c);    compare(x,y,z);}void compare(int x,int y,int z){    int a[3];    x=a[0];y=a[1];z=a[2];    int i,j;    for(i=0;i<3;i++)    {        for(j=2;j>i;j--)        {            if(a[j]<a[j-1])            {                swap(&a[j],&a[j-1]);            }        }    }   puts(a);   printf("\n");   puts();}void swap(int *m,int *n){    int t;    t=*m;    *m=*n;    *n=

以上为写10.1时的一些想法 如果单纯的想要写字符串长度而非大小比较的一串代码 但是输出时有一些错误还没想到该如何更改


最开始写的时候误解了题意,以为是比较字符串长度。后来才发现比较的其实是字符串的大小。

如果比较大小则需要用到strcmp函数

如下所示

#include<stdio.h>#include<string.h>int main(){    char a[50],b[50],c[50];    gets(a);    gets(b);    gets(c);    if(strcmp(a,b)>0)    {        if(strcmp(b,c)>0)        {            puts(c);            puts(b);            puts(a);        }        else        {            puts(b);            puts(c);            puts(a);        }    }    else if(strcmp(a,b)<0)    {        if(strcmp(a,c)<0)        {            puts(a);            puts(c);            puts(b);        }        else        {            puts(c);            puts(a);            puts(b);        }    }    else if(strcmp(c,a)>0)    {        if(strcmp(a,b)>0)        {            puts(b);            puts(a);            puts(c);        }        else        {            puts(a);            puts(b);            puts(c);        }    }}


原创粉丝点击