SCAUoj综合性实验
Last One !
文章目录
- 1109 综合实验:文件操作与字符处理
- 总结
1109 综合实验:文件操作与字符处理
时间限制:4000MS 代码长度限制:10KB
提交次数:6265 通过次数:1646
题型: 填空题 语言: GCC
Description
在当前目录中存在文件名为"case1.in"(其中case后为数字1,不是字母l,写错提交后会判错)的文本文件,
其内容为一篇英文文章(以EOF作为结束标志)。现要求读取该文本文件内容,统计文章中每个单词出现的次数,
并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出,
不足5个单词时,按序输出全部单词)。程序中注意如下细节:
(1) 空格、标点符号与回车符起到分隔单词的作用。
(2) 文章一行的末尾可能有连字符,出现连字符时,该行最末的字符串与下行最先出现的字符串构一个单词;
(3) 名词缩写算一个单词;
(4) 数字不算单词;
(5) 单词不区分大小写;
(6) 输出时单词全使用小写;
#include "stdio.h"
#include "math.h"
#include "string.h"
#include "stdlib.h"_______________________main()
{_______________________
}
输入格式
文件case1.in中一篇英文文章,包含多段文字,单词数不超过10000,每个单词不超过20个字符
输出格式
按题意输出答案
输入样例
(如case1.in内容如下)
I am a student. My school is SCAU. It is a beau-
tiful university. I like it.
输出样例
a 2
i 2
is 2
it 2
am 1
代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>#define MAX_WORDS 10005
#define MAX_WORD_LEN 25char words[MAX_WORDS][MAX_WORD_LEN]; // 存放各个单词
int count[MAX_WORDS]; // 记录每个单词出现的次数
int wordCount = 0; // 不同单词的个数// 查找单词在数组中的位置,找不到则插入
void searchAndInsert(char word[])
{for (int i = 0; i < wordCount; i++){if (strcmp(word, words[i]) == 0){count[i]++; // 单词已存在,增加计数return;}}// 单词不存在,插入数组strcpy(words[wordCount], word);count[wordCount]++;wordCount++;
}// 初始化函数,读取文件内容并统计单词
void initialize()
{FILE *file;char ch;char word[MAX_WORD_LEN];int pos = 0;int flag = 0; // 标记是否遇到字母int flag1 = 0; // 标记是否遇到连接符号if ((file = fopen("case1.in", "r")) == NULL){perror("文件打开失败");exit(EXIT_FAILURE);}while ((ch = fgetc(file)) != EOF){if (flag1 && ch != '\n' && flag) // 遇到连接符号且当前字符不是回车,同时已经遇到字母{word[pos] = '\0'; // 将当前字符串插入数组searchAndInsert(word);flag = 0;pos = 0;flag1 = 0;}if ('A' <= ch && ch <= 'Z'){ch = ch + 32; // 转换为小写word[pos++] = ch;flag = 1;flag1 = 0;}else if (ch >= 'a' && ch <= 'z'){word[pos++] = ch;flag = 1;flag1 = 0;}else if (ch == '-'){if (flag)flag1 = 1;continue;}else if ((flag && !flag1)){word[pos] = '\0';searchAndInsert(word);flag = 0;pos = 0;}if (ch == '\n' && flag1){flag1 = 0;}}fclose(file);
}int main()
{memset(count, 0, sizeof(count));memset(words, 0, sizeof(words));initialize();int n = 5;while (n-- && n < wordCount) // 只取前五个或全部单词{int maxIndex = 0;for (int i = 1; i < wordCount; i++){if (count[i] > count[maxIndex] || (count[i] == count[maxIndex] && strcmp(words[i], words[maxIndex]) < 0)){maxIndex = i;}}printf("%s %d\n", words[maxIndex], count[maxIndex]);count[maxIndex] = 0; // 输出后将最大值清零,找次大值}return 0;
}
总结
完结撒花 ~~ 忘记这个题目是参考哪位大佬的(去年写的太久了),如果需要引用原文欢迎致信
相关文章:
SCAUoj综合性实验
Last One ! 文章目录 1109 综合实验:文件操作与字符处理总结 1109 综合实验:文件操作与字符处理 时间限制:4000MS 代码长度限制:10KB 提交次数:6265 通过次数:1646 题型: 填空题 语言: GCC Description 在当前目录中存在文件名为"case1.in"&…...
智加科技获全国首张重卡无人驾驶开放道路测试牌照
2023年12月1日,智加科技获得苏州市智能网联汽车无人化测试牌照。该牌照也是江苏省及国内首张无人重卡开放高速公路全路段全场景全息路网(S17苏台高速)道路测试牌照。 该重卡无人驾驶开放道路测试牌照,经由苏州市智能网联汽车联席小…...
LLM大语言模型(一):ChatGLM3-6B本地部署
目录 前言 本机环境 ChatGLM3代码库下载 模型文件下载 修改为从本地模型文件启动 启动模型网页版对话demo 超参数设置 GPU资源使用情况 (网页对话非常流畅) 前言 LLM大语言模型工程化,在本地搭建一套开源的LLM,方便后续的…...
chatgpt prompt提示词
chatgpt的接口是一个标准的http请求,请求的url为 POST https://api.openai.com/v1/chat/completions 官方的接口文档地址为:https://platform.openai.com/docs/api-reference/chat/create Example request curl https://api.openai.com/v1/chat/comp…...
【PyTorch】数据集
文章目录 1. 创建数据集1.1. 直接继承Dataset类1.2. 使用TensorDataset类 2. 数据集的划分3. 加载数据集4. 将数据转移到GPU 1. 创建数据集 主要是将数据集读入内存,并用Dataset类封装。 1.1. 直接继承Dataset类 必须要重写__getitem__方法,用于根据索…...
oops-framework框架 之 本地存储(五)
引擎: CocosCreator 3.8.0 环境: Mac Gitee: oops-game-kit 注: 作者dgflash的oops-framework框架QQ群: 628575875 简介 在CocosCreator中,本地存储主要使用sys.localStorage 接口,通过 key-value的格式进…...
编程常见的问题
在现代社会中,编程已经成为一项非常重要的技能。随着科技的不断发展和普及,计算机已经渗透到我们生活的方方面面,从个人电脑、手机到智能家居、自动驾驶等。编程作为计算机科学的基础,为我们提供了解决问题和创造新事物的工具和方…...
针对Arrays.asList的坑,可以有哪些处理措施
上文讲述:Error querying database. Cause: java.lang.reflect.InaccessibleObjectException: 那么如果真的只习惯用Arrays.asList,那也是有对应的解决办法的。 一、解决办法大方向 不管做什么事情,都是先判定一个大方向,不管是…...
SE考研真题总结(一)
本帖开始分享考研真题中设计【软件工程】的部分,预计会出5期左右,敬请期待~ 一.单选题 1.程序编写不是软件质量保障过程~ 静态代码扫描是今年来多数被人提及的软件应用安全解决方案之一,指程序员在编写好代码后无需进行编译,直接…...
Xshell远程登录AWS EC2 Linux实例
文章目录 小结问题解决参考 小结 Xshell远程登录AWS EC2 Linux实例碰到些问题,进行解决并记录。 问题 在AWS中创建 EC2 Linux实例,生成的非对称密钥对,使用Xshell远程登录碰到一些问题。 解决 首先在Putty中可以使用的ppk密钥文件在Xshe…...
Elasticsearch:对时间序列数据流进行降采样(downsampling)
降采样提供了一种通过以降低的粒度存储时间序列数据来减少时间序列数据占用的方法。 指标(metrics)解决方案收集大量随时间增长的时间序列数据。 随着数据老化,它与系统当前状态的相关性越来越小。 降采样过程将固定时间间隔内的文档汇总为单…...
python自动化测试框架:unittest测试用例编写及执行
本文将介绍 unittest 自动化测试用例编写及执行的相关内容,包括测试用例编写、测试用例执行、测试报告等内容。 官方文档: https://docs.python.org/zh-cn/3/library/unittest.mock.html 1. 测试用例编写 在 unittest 中,一个测试用例通常…...
ctfhub技能树_web_web前置技能_HTTP
目录 一、HTTP协议 1.1、请求方式 1.2、302跳转 1.3、Cookie 1.4、基础认证 1.5、响应包源代码 一、HTTP协议 1.1、请求方式 注:HTTP协议中定义了八种请求方法。这八种都有:1、OPTIONS :返回服务器针对特定资源所支持的HTTP请求方法…...
mysql8报sql_mode=only_full_group_by(存储过程一直报)
1:修改数据库配置(重启失效) select global.sql_mode;会打印如下信息 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION里面包含 ONLY_FULL_GROUP_BY,那么就重新设置,在数据库中输入以下代码,去掉ONLY_FULL_GROU…...
Vue2中v-html引发的安全问题
前言:v-html指令 1.作用:向指定节点中渲染包含html结构的内容。 2.与插值语法的区别: (1).v-html会替换掉节点中所有的内容,{{xx}}则不会。 (2).v-html可以识别html结构。 3.严重注意:v-html有安全性问题࿰…...
java内部类详解
文章目录 一、介绍二、为什么要使用内部类三、非静态内部类四、静态内部类五、局部内部类六、匿名内部类七、lambda表达式内部类八、成员重名九、序列化十、如何选择内部类 一、介绍 在java中,我们被允许在编写一个类(外部类OuterClass)时,在其内部再嵌…...
Python 潮流周刊#29:Rust 会比 Python 慢?!
△请给“Python猫”加星标 ,以免错过文章推送 你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯。 ὃ…...
吴恩达《机器学习》11-1-11-2:首先要做什么、误差分析
一、首先要做什么 选择特征向量的关键决策 以垃圾邮件分类器算法为例,首先需要决定如何选择和表达特征向量 𝑥。视频提到的一个示例是构建一个由 100 个最常出现在垃圾邮件中的词构成的列表,根据这些词是否在邮件中出现来创建特征向量&…...
Pandas在Excel同一个sheet里插入多个Dataframe和行
Pandas默认的to_excel是直接把完成的Datafrme写入一个sheet里,这并不能满足我们在一个sheet里插入多个Dataframe或多行的需求。为了实现插入多行或多Dataframe的目的,我们需要新建一个ExcelWriter对象,然后依次插入数据。 这里我们以插入2个Dataframe和三行单元格为例。 新…...
查看mysql 或SQL server 的连接数,mysql超时、最大连接数配置
1、mysql 的连接数 1.1、最大可连接数 show variables like max_connections; 1.2、运行中连接数 show status like Threads_connected; 1.3、配置最大连接数, mysql版本不同可配置的最大连接数不同,mysql8.0的版本默认151个连接数,…...
Qwen3.5-4B-Claude-Opus入门必看:中文逻辑推理助手Web镜像快速上手
Qwen3.5-4B-Claude-Opus入门必看:中文逻辑推理助手Web镜像快速上手 1. 模型概述 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个专为中文逻辑推理优化的AI助手模型。它基于Qwen3.5-4B架构,通过蒸馏训练强化了结构化分析、分步骤回答以及代…...
AMD Ryzen SDT调试工具:突破性实战指南,让你的处理器性能飙升200%
AMD Ryzen SDT调试工具:突破性实战指南,让你的处理器性能飙升200% 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. …...
EmbeddingGemma-300m与MySQL结合:大规模向量存储方案
EmbeddingGemma-300m与MySQL结合:大规模向量存储方案 1. 引言 想象一下这样的场景:你的电商平台每天新增数万条商品描述,需要快速实现语义搜索功能;或者你的内容平台有百万篇文章,想要根据用户兴趣智能推荐相关内容。…...
新型macOS Infinity窃密木马利用Nuitka Python载荷与ClickFix传播
首例针对macOS的ClickFix攻击活动Malwarebytes研究人员发现名为Infinity Stealer的新型macOS信息窃取木马,该木马使用Nuitka编译的Python载荷,通过伪造Cloudflare验证页面诱骗用户执行终端命令进行传播。据Malwarebytes报告指出,这是首次观察…...
哈希冲突实战:用链地址法+表头插入优化你的查找性能(以LeetCode风格题为例)
哈希冲突实战:用链地址法表头插入优化你的查找性能(以LeetCode风格题为例) 哈希表是算法面试中的常客,但真正能说清楚其底层优化细节的开发者并不多。最近在帮团队面试候选人时,我发现90%的人能说出链地址法的基本概念…...
DDrawCompat:老游戏兼容性修复与性能优化终极解决方案
DDrawCompat:老游戏兼容性修复与性能优化终极解决方案 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/DDrawC…...
【vue】二、vue2仿去哪儿网app——首页开发实战:从零搭建到性能优化
1. 项目初始化与页面结构设计 开始一个Vue2仿去哪儿网App首页项目,首先要搭建基础框架。我习惯用vue-cli脚手架快速初始化项目,这个工具能帮我们处理好webpack配置、基础目录结构等繁琐工作。执行vue init webpack qunar-app命令后,会生成标…...
从‘torch not found’到成功训练:一个YOLOv8环境配置的完整避坑实录(含CUDA/cuDNN版本选择)
YOLOv8环境配置终极指南:从版本匹配到显存优化的全流程实战 在计算机视觉领域,YOLOv8作为目标检测的标杆算法,其安装配置过程却常常成为开发者的"拦路虎"。本文将带你系统解决从PyTorch版本选择、CUDA环境配置到显存优化的全链路问…...
终极分屏游戏解决方案:Nucleus Co-Op 让单机游戏变身多人派对
终极分屏游戏解决方案:Nucleus Co-Op 让单机游戏变身多人派对 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 还在为单机游戏无法本地多…...
Qwen3.5-9B图文对话实战:工业设备铭牌识别+参数查询+维保周期提醒
Qwen3.5-9B图文对话实战:工业设备铭牌识别参数查询维保周期提醒 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型,特别适合工业场景下的图文对话应用。这个项目展示了如何利用其多模态能力,实现工业设备铭牌识别、参数查询和维保…...
