2025-03-10 学习记录--C/C++-PTA 习题11-3 计算最长的字符串长度

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️

裁判测试程序样例:

c 复制代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAXN 10
#define MAXS 20

int max_len( char *s[], int n );

int main()
{
    int i, n;
    char *string[MAXN] = {NULL};
    
    scanf("%d", &n);
    for(i = 0; i < n; i++) {
        string[i] = (char *)malloc(sizeof(char)*MAXS);
        scanf("%s", string[i]);
    }
    printf("%d\n", max_len(string, n));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例

c 复制代码
4
blue
yellow
red
green

输出样例

c 复制代码
6

二、代码(C语言)⭐️

c 复制代码
int max_len(char *s[], int n) {
    int max = 0;  // 定义一个变量 max,用于存储当前找到的最大字符串长度,初始值为 0

    // 遍历字符串数组 s,查找最长的字符串长度
    for (int i = 0; i < n; i++) {
        int len = strlen(s[i]);  // 计算当前字符串 s[i] 的长度
        if (len > max) {         // 如果当前字符串的长度大于 max
            max = len;           // 更新 max 为当前字符串的长度
        }
    }

    return max;  // 返回找到的最大字符串长度
}

代码逐行详细说明:🍭

1、int max = 0;

定义一个变量 max,用于存储当前找到的最大字符串长度。初始值为 0,表示还没有找到任何字符串。

2、for (int i = 0; i < n; i++) {

使用 for 循环遍历字符串数组 s,i 是当前遍历的索引,n 是字符串数组的长度。

3、int len = strlen(s[i]);

计算当前字符串 s[i] 的长度,并将结果存储在变量 len 中。

4、if (len > max) {

判断当前字符串的长度 len 是否大于 max。如果是,说明找到了更长的字符串。

5、max = len;

如果当前字符串的长度 len 大于 max,则更新 max 为 len。

6、return max;

返回 max,即最长的字符串长度。

​

相关推荐
一条泥憨鱼6 小时前
【从0开始学习计算机网络】| ARP 协议:地址解析,ARP 欺骗,链路层寻址
网络·后端·学习·计算机网络
HY小宝F6 小时前
树莓派智能摄像头系统 30 天重学计划之 Day 04 · HTTP / API:控制链入口 —— 学习总结
网络协议·学习·http
悟乙己7 小时前
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记:赛题解析(一)
笔记·学习·金融
霍霍的袁8 小时前
【C++】哈希表实现指南:从原理到开放定址法、链地址法的实现
c++·学习·哈希算法·散列表·visual studio
PC2005-cloud8 小时前
MySQL学习笔记:GTID 主从复制,从原理到实践,告别传统 Binlog+Position 的痛点
笔记·学习·mysql
starsky762389 小时前
Agent学习——上下文工程(二)
学习
Dark_Fairy10 小时前
CMeKG_tools 知识图谱项目速成教程(13课共24H)
学习
悟乙己10 小时前
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记:关联技术(二)
笔记·学习·金融
我送炭你添花10 小时前
ASA原理与电子维修实战:前言 一路修来,一路学习
运维·网络·学习
代码山河11 小时前
第一个Java程序:Hello World从零编写与运行
java·学习·架构·教程·面向对象·项目