当前位置: 首页 > news >正文

问题解决策略基础算法实现训练1

问题 A: C 语言习题 字符串排序

[ 提交] [ 状态]

题目描述

输入nnn个字符串,将它们按字母由小到大的顺序排列并输出。编写三个函数实现, 用于输出inputnnn个字符串, 用于排序sortstrnnn个字符串, 用于输出outputnnn个字符串

输入

第一行nnn

第二行到第n+1n+1n+1行,每行一个字符串

输出

排序后的字符串

输入输出样例

样例输入 #1
复制
3 YTU ACM COM
样例输出 #1
复制
ACM COM YTU

提示

主函数已给定如下,提交时不需要包含下述主函数

C:

int main() { char str[10][10]; int n; scanf("%d", &n); input(str, n); sortstr(str, n); output(str, n); return 0; }

C++:

int main() { string str[10]; int n; cin >> n; input(str, n); sortstr(str, n); output(str, n); return 0; }
#include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; bool cmp(string a, string b) { return a < b; } void input(string str[], int n) { for (int i = 0;i < n;i++) cin >> str[i]; } void sortstr(string str[], int n) { sort(str, str + n, cmp);//注意这里 } void output(string str[], int n) { for (int i = 0;i < n;i++) cout << str[i] << endl; }

问题 B: C语言习题 不等长字符串排序

题目描述

在主函数中输入nnn(n≤10n \le 10不≤10)个不等长的字符串,用另一函数对它们排序,然后在主函数输出这nnn个已排好序的字符串。

输入

nnn和nnn个不等长字符串。

输出

nnn个已排好序的字符串。

输入输出样例

样例输入 #1
复制
5 abcd 12345678 abc 123456 ab123
样例输出 #1
复制
123456 12345678 ab123 abc abcd

提示

主函数已给定如下,提交时不需要包含下述主函数。

C:

int main() { void sort(char *[], int n); int i; char str[10][80]; char *p[10]; int n; scanf("%d", &n); for (i= 0; i < n; i++) scanf("%s", str[i]); for (i= 0; i<n; i++) p[i]= str[i]; sort(p, n); for (i= 0; i < n; i++) printf("%s\n", p[i]); return 0; }

C++:

int main() { void sort(char *[], int n); int i; char str[10][80]; char *p[10]; int n; cin >> n; for (i= 0; i < n; i++) cin>>str[i]; for (i= 0; i < n; i++) p[i]= str[i]; sort(p, n); for (i= 0; i < n; i++) cout << p[i] << endl; return 0; }

套用cpp的string来写的

#include<iostream> #include<algorithm> #include<string> using namespace std; bool cmp(char* a, char* b) { string x; string y; int n = sizeof(a) / sizeof(char); int m = sizeof(b) / sizeof(char); for (int i = 0;i < n;i++) x.push_back(a[i]); for (int i = 0;i < m;i++) y.push_back(b[i]); return x < y; } void sort(char* p[], int n) { sort(p, p + n, cmp); }

问题 C: 团体操排序

题目描述

注:本题只需要提交填写部分的代码,请按照C语言方式提交。

mmm 个班级每班选 nnn 个人穿不同颜色的衣服(所有衣服颜色都不同),参加学校运动会大型团体操表演。每班站一行,每个人在班级所在行中的位置是固定不变的,班级所在行是可以改变的。任选一列同学,要求按照该名同学衣服颜色的首字母 ASCII 升序对班级所在行进行排列。

#include <stdio.h> #include <stdlib.h> #define M 3 /* 班级数 */ #define N 4 /* 每班人数 */ int main() { char color[M][N] = { {'R','G','B','C'}, {'B','Y','W','O'}, {'Y','R','P','W'} } ; char *pcolor[M]; int i, j, k; char *temp; /* 初始化指针数组 */ for (i= 0; i < M; i++) pcolor[i]=color[i]; /* 输入 */ for (i= 0; i < M; i++) { for (j= 0; j < N; j++) scanf("%c", color[i]+j); scanf("%*c"); } scanf("%d", &k); /* 冒泡排序 */ for (i= 0; i < M-1; i++) for(j=0; j<M-i-1; j++) /* 在此之间完善代码 */ ...... /* 在此之间完善代码 */ for (i= 0; i < M; i++) { /* 按新序输出各班的颜色 */ for(j=0; j<N; j++) printf("%c", *(pcolor[i]+j)); printf("\n"); } for (i= 0; i < M; i++) { /* 按原序输出各班的颜色 */ for (j= 0; j < N; j++) printf("%c", color[i][j]); printf("\n"); } return 0; }

输入

输入 333 行 444 列的色彩方案字符数组。(每个字符表示一种颜色)
输入一个数字 kkk 代表所选列数(1≤k≤n1 \le k \le n1≤k≤n)。

输出

输出排列后的色彩方案和原来的色彩方案

输入输出样例

样例输入 #1

复制

RGBC BYWO YRPW 2
样例输出 #1

复制

RGBC YRPW BYWO RGBC BYWO YRPW

记得k-1即可

{ if (pcolor[j][k - 1] > pcolor[j + 1][k - 1]) { char* tmp = pcolor[j]; pcolor[j] = pcolor[j + 1]; pcolor[j + 1] = tmp; } }

问题 D: 学生信息排序

题目描述

定义存放一个学生信息的结构体类型,学生信息包括:姓名,学号,性别,院系,要求在随意输入 555 个学生的相关信息后,按照学号从小到大顺序输出这些学生的信息。

输入

先输入 555 名学生的信息,按学号顺序排序输出后在输入要统计的院系名称。

输出

先按学号从小到大的顺序输出学生信息。

输入输出样例

样例输入 #1

复制

zhang3 20149003 M 信息系 zhang5 20149005 F 信息系 zhang10 20149010 F 管理系 zhang1 20149001 M 会计系 zhang9 20149009 M 会计系
样例输出 #1

复制

zhang1 20149001 M 会计系 zhang3 20149003 M 信息系 zhang5 20149005 F 信息系 zhang9 20149009 M 会计系 zhang10 20149010 F 管理系

提示

数据输出之间有 444 个空格。

没想到带中文的院系居然可以直接用string表示,这题一把过,太爽了!

//姓名,学号,性别,院系 #include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; struct student { string name; string number; string sex; string major; }; bool cmp(struct student a, struct student b) { return a.number < b.number; } int main() { int n = 5; vector<struct student>stu(n); for (int i = 0;i < n;i++) cin >> stu[i].name >> stu[i].number >> stu[i].sex >> stu[i].major; sort(stu.begin(), stu.end(), cmp); for (int i = 0;i < n;i++) { cout << stu[i].name << " "; cout << stu[i].number << " "; cout << stu[i].sex << " "; cout << stu[i].major << endl; } return 0; }
http://www.jsqmd.com/news/616310/

相关文章:

  • 2026年浙江六甲基二硅氮烷口碑产品推荐分析,耐高温、高硬度、疏水疏油涂层/聚硅氮烷陶瓷先驱体,六甲基二硅氮烷厂家推荐 - 品牌推荐师
  • lvgl-micropython、lv_micropython和lv_binding_micropython到底啥关系?一文读懂永
  • 2026年白发养护品牌盘点:白养黑/禾亚美养发馆/禾亚美加盟/禾亚美效果/禾亚美毛发管理中心/禾亚美白发养护/禾亚美门店/选择指南 - 优质品牌商家
  • 2026年往复式提升机采购指南:液压升降平台、液压升降机、液压货梯、高速提升机、往复式提升机、液压升降台、升降机选择指南 - 优质品牌商家
  • 【国家级数字农业项目技术白皮书节选】:PHP轻量化时序数据处理框架如何扛住每秒8700+传感器上报?
  • 【OpenClaw】通过 Nanobot 源码学习架构---()总体患
  • 2026浙江岗亭企业盘点:台州岗亭、吸烟亭、嘉兴岗亭、宁波岗亭、浙江岗亭、湖州岗亭、移动卫生间、移动厕所、移动垃圾分类房选择指南 - 优质品牌商家
  • GLM-. 全面支持与 Gemini CLI 集成:HagiCode 的多模型进化之路估
  • 2026大板专用瓷砖胶技术解析:德高和亿固瓷砖胶/瓷砖胶十大名牌/瓷砖胶十大品牌/瓷砖胶口碑排行/选择指南 - 优质品牌商家
  • OpenClaw+Qwen3.5-9B组合优势:3个不可替代的使用场景
  • 2026户外监控必选无电无网款!68%人选它,Q1销量榜单给你参考;格行模式值得行业借鉴;AOV低功耗+黑光夜视,解决无电无网痛点
  • 2026年行业内质量好的锻件企业选哪家,压力容器法兰/船用法兰/高温合金法兰/锻件/不锈钢法兰/法兰,锻件厂商找哪家 - 品牌推荐师
  • 2026年口碑好的玻璃钢化粪池/陕西化粪池横向对比厂家推荐 - 行业平台推荐
  • 10分钟搞懂 RAG:大模型如何边检索边生成答案
  • eVTOL 研制必读 | 厘清研制保证与设计保证的边界
  • Harness 中的上下文窗口压缩策略
  • 写程序相册内页分隔卡,复古做旧风,输出:纪念册/影楼增值项目。
  • SecGPT-14B专属优化:降低OpenClaw安全任务的高token消耗
  • 都在用妙手ERP,凭什么你的利润更高?论定制 RPA 如何将“通用工具”爆改成“私有引擎”
  • 2026Q2金华隆鼻技术解析:金华胎记/金华胸缩小术/金华脂肪丰胸/金华脂肪隆胸/金华腰腹抽脂/金华腿吸脂/金华自体丰胸/选择指南 - 优质品牌商家
  • 2026年成都最值得关注的整合营销推广推荐榜单
  • 从月损耗20万到年增收300万:零售老板180天蜕变
  • 国标GB28181视频分析平台EasyGBS视频质量诊断核心能力与多场景应用实践
  • 方差的数学意义
  • OpenClaw语音控制扩展:千问3.5-27B实现本地语音指令识别
  • cursor-free-vip:突破Cursor Pro使用限制的技术解决方案与实践指南
  • Java安全编程与静态分析实战
  • 基于机器视觉的食品包装膜模切应用
  • 2026西宁z型钢技术指南:青海集装箱板/西宁c型钢/西宁仿古瓦/西宁冷库板/西宁净化板/西宁岩棉板/选择指南 - 优质品牌商家
  • 小学阶段的核心1000词Ⅰ 动物世界篇 (Animals)干词背单词!