情人节还在刷题


私信TA

用户名:dotcpp0641709

访问量:180

签 名:

等  级
排  名 17657
经  验 766
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

最笨的方法
浏览:164

解题思路:利用两个数组来分别存放每个单词的大小和对应的句子中每个单词开始的元素下标

注意事项:每个单词的元素下标记得从0开始

参考代码:

int main()

{

    char str[2000] = { 0 };

    int a[200] = { 0 };//存放每个单词的大小

    int b[200] = { 0 };//存放每个单词开始位置的下标号

    int i = 0, k = 0, j = 0, m1 = 0, m2 = 0;

    int max = 1, min = 1;

    gets(str);

    //计算每个单词的大小和开始下标

    while (str[i])

    {

        j = 0;

        b[k] = i;

        while (str[i] != ' ' && str[i] != '\0')

        {

            i++;

            j++;

        }

        if (j != 0)

        {

            a[k] = j;

            k++;

        }

        i++;

    }


    //找出最长和最短单词的长度

    for (i = 0; i < k; i++)

    {

        max = (a[i] > max) ? (a[i]) : (max);

        min = (a[i] < min) ? (a[i]) : (min);

    }

    //找出第一个最长最短单词的元素下标

    for (i = 0; i < k; i++)

    {

        if (a[i] == max)

        {

            max = b[i];//最长单词元素下标

            m1 = i;//用来标记这个单词的大小

            break;

        }

    }

    for (i = 0; i < k; i++)

    {

        if (a[i] == min)

        {

            min = b[i];//最短单词元素下标

            m2 = i;

            break;

        }

    }

    //输出最长单词

    for (i = max; i < max + a[m1]; i++)

    {

        printf("%c", str[i]);

    }

    printf("\n");

    //输出最短单词

    for (i = min; i < min + a[m2]; i++)

    {

        printf("%c", str[i]);

    }

    printf("\n");

    return 0;

}


 

0.0分

2 人评分

  评论区

您好,我提交代码一直得到91分,请问您知道测试点有哪些吗?
2023-05-23 10:01:11
  • «
  • 1
  • »