永发信息网

#include <stdio.h> int i; char *duqu(char *p); char *bijiao(char *q); char *bijiaox(char *f);

答案:1  悬赏:60  手机版
解决时间 2021-03-25 00:16
  • 提问者网友:玫瑰园
  • 2021-03-24 12:03
#include <stdio.h> int i; char *duqu(char *p); char *bijiao(char *q); char *bijiaox(char *f); in
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-03-24 13:16
//函数strcmp()用于比较字符串的大小
//函数strlen()用于计算字符串的长度
#include 
#include  //用于函数strcmp(),strlen()
//原代码 int i; //不用
char *duqu(char *p);    //记录字符串
char *bijiao(char *q);  //找最大
char *bijiaox(char *f); //找最小
void findLongShort(char *q,char **longStr,char **shortStr); //找最长和最短
int main(void)
{
    char a[100][10];
    char *p;
    char *qu;
    char *x;
    int i;
    int count=0;
    qu=&a[0][0];   //或者 qu=a;
    for(i=1;i!=0;)
    {
        printf("请输入单词:");
        qu=duqu(qu);
        count++;
        printf("继续输入1,否则输入0:");
        scanf("%d",&i);
        getchar();
    }

    //让二维数组a[][]的最后一个单词之后的字符串的第1个字符是'',
    //函数bijiao()里的语句"if(*(q)=='') break;"需要''作为结束标志.
    a[count][0]='';

    //原代码printf("%s %s %s %s",&a[0][0],&a[1][0],&a[2][0],&a[3][0]);
    printf("有%d个单词:",count);
    for(i=0;i    {
        printf("%s ",a[i]);
    }
    printf("
");

    p=&a[0][0];
    p=bijiao(p);  //找最大
    x=&a[0][0];
    x=bijiaox(x); //找最小
    printf("
最大:%s
",p);
    printf("最小:%s
",x);

    qu=&a[0][0];
    findLongShort(qu,&p,&x); //找最长和最短
    printf("最长:%s
",p);
    printf("最短:%s
",x);

    return 0; //int main()要有返回值
}
char *duqu(char *p)
{
    int number;
    char *e;
    e=p;
    for(number=0 ; number < 10-1 ; number++)
    {
        *p=getchar();
        if(*p=='
') break;
        p++;
    }
    *p='';
    p=e+10;
    return p;
}
char *bijiao(char *q) //找最大
{
    char *zuida;
    int i;      //int i2; 没有使用
    for(zuida=q ; ; q=q+10)
    {
        if(*(q)=='') break;
        i=strcmp(zuida,q);
        if(i<0)
        {
            zuida=q;
        }

        //原代码
        
    }
    return zuida;
}
char *bijiaox(char *f) //找最小
{
    char *zuixiao;
    int i;         //int i2; 没有使用
    for(zuixiao=f ; ; f=f+10)
    {
        if(*(f+10)=='')
            break;
        i=strcmp(zuixiao,f+10);
        if(i>0)
        {
           zuixiao = f+ 10;
        }

        //原代码
        
    }
    return zuixiao;
}

void findLongShort(char *q,char **longStr,char **shortStr) //找最长和最短
{
    //char **longStr是指针的指针
    //char **shortStr是指针的指针
    int longLen;
    int shortLen;
    longLen=strlen(q); //最长
    shortLen=longLen;  //最短
    *longStr=q;
    *shortStr=q;
    for( ; ; q=q+10)
    {
        if(*(q)=='') break;
        if(longLen < strlen(q))
        {
            longLen=strlen(q);
            *longStr=q;
        }
        else if(shortLen > strlen(q))
        {
            shortLen=strlen(q);
            *shortStr=q;
        }
    }
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯