汶先生201 2023-01-31 21:54 采纳率: 66.7%
浏览 32
已结题

找最长单词,输入平台的输入样例无法结束程序

代码应该没有错误
图点开比较清晰

  • 题目

img

  • 代码
void find(char b[81])
{

    int i;
    int o;
    int p;
    int count = 0;
    int length = 0;
    int start = 0;
    int m;
    int maxlength = 0;
    int dot = 0;
    for (o = 0; b[o] != '\0'; o++)
    {
        if (b[o] == ' ')
            start = o + 1;
        if (o == start)
        {
            m = o;
            while ((b[o] >= 'A' && b[o] <= 'Z') || (b[o] >= 'a' && b[o] <= 'z'))
            {
                o++;
                length++;
            }
            if (maxlength < length)
            {
                maxlength = length;
                dot = start;
            }
            length = 0;
            o = m;
        }
        if (b[o + 1] == '\0')
        {
            for (i = dot; ((b[i] >= 'A' && b[i] <= 'Z') || (b[i] >= 'a' && b[i] <= 'z')); i++)
            {
                printf("%c", b[i]);
            }
            printf("\n");
        }
    }
}
int main()
{

    char a[100];
    while(gets(a))
    {
        find(a);
    }
    return 0;
}

  • 运行效果

img

  • 写回答

2条回答 默认 最新

  • CodeBytes 2023-01-31 22:20
    关注

    如果觉得可以,还请 采纳:

    using System;
    using System.Linq;
    
    namespace ConsoleApp
    {
        class Program
        {
            static void Main(string[] args)
            {
                while (true)
                {
                    string input = Console.ReadLine();
                    if (input == null) break;
    
                    string[] words = input.Split(' ');
                    string maxLengthWord = words
                        .Where(word => word.All(char.IsLetter))
                        .OrderByDescending(word => word.Length)
                        .ThenBy(word => words.ToList().IndexOf(word))
                        .First();
    
                    Console.WriteLine(maxLengthWord);
                }
            }
        }
    }
    

    1、使用while循环读入字符串,如果读入的字符串为空,则退出循环。
    2、使用Split方法将读入的字符串分割成数组,存入words数组。
    3、使用Where方法过滤出字符串数组中全部由字母组成的单词。
    4、使用OrderByDescending方法按单词长度从大到小排序,使用ThenBy方法再按出现的先后顺序排序。
    5、使用First方法取出排序后的第一个元素,即最长的单词。
    6、输出最长单词。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月8日
  • 已采纳回答 1月31日
  • 修改了问题 1月31日
  • 修改了问题 1月31日
  • 展开全部

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算