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

如何使用ftp上传网站推广标题怎么写

如何使用ftp上传网站,推广标题怎么写,网页特效代码免费网站,比特币简易网站开发博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述题目描述输入格式输出格式输入输出样例输入 #1输出 #1 💯题目分析💯不同解法分析我的做法实现步骤:优点:不足&#…

在这里插入图片描述

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]
本文专栏: C++

文章目录

  • 💯前言
  • 💯题目描述
    • 题目描述
    • 输入格式
    • 输出格式
    • 输入输出样例
      • 输入 #1
      • 输出 #1
  • 💯题目分析
  • 💯不同解法分析
    • 我的做法
      • 实现步骤:
      • 优点:
      • 不足:
    • 老师的做法
      • 实现步骤:
      • 优点:
      • 不足:
    • 优化与改进
      • 优化点:
  • 💯小结


在这里插入图片描述


💯前言

  • 在学习 C++ 的过程中,二维数组操作是一个重要的知识点,而矩阵的行交换问题则是一个经典案例。本文将围绕一道涉及矩阵行交换的题目展开,从题目描述到代码实现,再到优化与拓展,逐步解析这道题的核心思想与实现方式。通过分析不同实现方法的优缺点,本文旨在帮助读者更加全面地理解二维数组操作的精髓。
    C++ 参考手册
    在这里插入图片描述

💯题目描述

题目编号为 B2099 矩阵交换行,具体内容如下:
B2099 矩阵交换行
在这里插入图片描述

题目描述

给定一个 5 × 5 的矩阵(数学上,一个 r × c r × c r×c 的矩阵是一个由 r r r c c c 列元素排列成的矩形数组),将第 n n n 行和第 m m m 行交换,输出交换后的结果。

输入格式

输入共 6 行,前 5 行为矩阵的每一行元素,元素与元素之间以一个空格分开。

第 6 行包含两个整数 m , n m, n m,n,以一个空格分开( 1 ≤ m , n ≤ 5 1 \leq m, n \leq 5 1m,n5)。

输出格式

输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开。

输入输出样例

输入 #1

1 2 3 4 5
6 7 8 9 0
9 0 3 0 3
4 5 6 7 8
1 2 3 4 5
1 3

输出 #1

9 0 3 0 3
6 7 8 9 0
1 2 3 4 5
4 5 6 7 8
1 2 3 4 5

💯题目分析

这道题的核心是实现对矩阵的行交换操作,其解题关键点包括:

  1. 矩阵的存储:

    • 使用二维数组存储 5 × 5 的矩阵。
    • 每个元素通过两层循环读取并存入数组。
  2. 行交换逻辑:

    • 根据用户输入的行号 m m m n n n,将第 m m m 行和第 n n n 行的元素逐列交换。
    • 使用一个临时变量(tmp)作为中转,逐列交换两个行的元素。
  3. 矩阵的输出:

    • 交换完成后,按题目要求的格式输出矩阵。
  4. 输入校验(可选):

    • 检查用户输入的行号是否在合法范围内(1 – 5)。
    • 若输入非法,给出提示信息并终止程序。

💯不同解法分析

我的做法

以下是我的实现代码:

#include <iostream>
using namespace std;int main()
{int arr[5][5];for(int i = 0; i < 5; i++){for(int j = 0; j < 5; j++){cin >> arr[i][j];}}int m, n;cin >> m >> n;for(int j = 0; j < 5; j++){int temp = arr[m - 1][j];arr[m - 1][j] = arr[n - 1][j];arr[n - 1][j] = temp;}for(int i = 0; i < 5; i++){for(int j = 0; j < 5; j++){cout << arr[i][j] << " ";}cout << endl;}    return 0;    
}

在这里插入图片描述

实现步骤:

  1. 矩阵输入:

    • 定义一个大小为 5×5 的二维数组 arr
    • 使用嵌套 for 循环将输入的矩阵数据存入数组中。
  2. 行交换:

    • 使用 for 循环遍历矩阵的每一列,逐列交换第 m-1 行和第 n-1 行的元素。
    • 使用中间变量 temp 进行临时存储,确保数据不被覆盖。
  3. 矩阵输出:

    • 再次使用嵌套 for 循环按题目要求的格式输出矩阵。

优点:

  • 代码清晰简洁,符合题目要求。
  • 行交换逻辑直观明了,适合初学者理解。

不足:

  1. 缺少输入校验:未对用户输入的行号 m , n m, n m,n 进行有效性检查。
  2. 硬编码矩阵大小:矩阵大小固定为 5×5,缺乏通用性。
  3. 优化空间有限:行交换逻辑虽然简单,但仍可进一步封装为函数,提高代码的可读性与复用性。

老师的做法

以下是老师的实现代码:

#include <iostream>
using namespace std;int arr[5][5];
int r1, r2;int main()
{int i = 0;int j = 0;// 输入for (i = 0; i < 5; i++){for (j = 0; j < 5; j++){cin >> arr[i][j];}}cin >> r1 >> r2;// 交换for (i = 0; i < 5; i++){int tmp = arr[r1 - 1][i];arr[r1 - 1][i] = arr[r2 - 1][i];arr[r2 - 1][i] = tmp;}// 输出for (i = 0; i < 5; i++){for (j = 0; j < 5; j++){cout << arr[i][j] << " ";}cout << endl;}return 0;
}

在这里插入图片描述

实现步骤:

与我的做法类似,但存在以下不同之处:

  1. 将数组 arr 和行号变量 r1, r2 定义为全局变量。

    • 优点:全局变量的定义使得主函数更简洁。
    • 缺点:全局变量的使用可能影响代码的模块化和可维护性。
  2. 对于矩阵输入和输出,老师使用了固定的循环变量 ij

  3. 行交换逻辑与我的实现方式基本一致,采用中间变量 tmp 完成逐列交换。

优点:

  • 与我的实现类似,逻辑清晰简洁。
  • 更贴近 C++ 的传统写法。

不足:

  1. 全局变量的使用:全局变量虽然简化了代码,但可能导致后续维护问题,尤其在多函数代码中。
  2. 缺少输入校验:未验证用户输入的行号是否在合法范围内。

优化与改进

结合上述分析,可以对代码进行以下优化:

  1. 输入校验:确保用户输入的行号合法。若输入非法,输出错误信息并终止程序。
  2. 封装行交换逻辑:将行交换封装为函数,提升代码的可读性与复用性。
  3. 避免硬编码:使用常量定义矩阵大小,提高代码的通用性。
  4. 避免全局变量:将全局变量改为局部变量,提升代码的模块化。

以下是优化后的代码:

#include <iostream>
using namespace std;const int SIZE = 5; // 定义常量矩阵大小void swapRows(int arr[SIZE][SIZE], int r1, int r2) {for (int i = 0; i < SIZE; i++) {int tmp = arr[r1][i];arr[r1][i] = arr[r2][i];arr[r2][i] = tmp;}
}int main() {int arr[SIZE][SIZE]; // 定义局部变量int r1, r2;// 输入矩阵for (int i = 0; i < SIZE; i++) {for (int j = 0; j < SIZE; j++) {cin >> arr[i][j];}}// 输入行号并校验cin >> r1 >> r2;if (r1 < 1 || r1 > SIZE || r2 < 1 || r2 > SIZE) {cout << "Invalid row numbers" << endl;return 1; // 错误退出}// 如果两行相同,无需交换if (r1 != r2) {swapRows(arr, r1 - 1, r2 - 1);}// 输出矩阵for (int i = 0; i < SIZE; i++) {for (int j = 0; j < SIZE; j++) {if (j > 0) cout << " "; // 控制空格输出cout << arr[i][j];}cout << endl;}return 0;
}

在这里插入图片描述

优化点:

  1. 输入校验逻辑确保程序健壮性。
  2. 行交换逻辑封装为独立函数,提高代码复用性。
  3. 使用常量定义矩阵大小,避免硬编码。
  4. 仅使用局部变量,减少全局变量的使用。

💯小结

通过对这道题的详细分析和代码实现的对比,可以看到,每一种实现方式都有其优点与不足。优化后的代码在逻辑清晰性、代码复用性和程序健壮性上得到了显著提升。

二维数组操作是 C++ 学习中的重要部分,理解其核心逻辑并掌握优化技巧,对于提升编程能力至关重要。希望本文能够帮助读者更好地理解和运用这些知识。


在这里插入图片描述


在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述


文章转载自:
http://zygophyllum.rdfq.cn
http://oxaloacetic.rdfq.cn
http://simulacre.rdfq.cn
http://precognition.rdfq.cn
http://undular.rdfq.cn
http://obliquitous.rdfq.cn
http://bookland.rdfq.cn
http://charqui.rdfq.cn
http://ptyalectasis.rdfq.cn
http://bootprint.rdfq.cn
http://bragger.rdfq.cn
http://curbstone.rdfq.cn
http://transitively.rdfq.cn
http://deltoidal.rdfq.cn
http://gandhiist.rdfq.cn
http://decompress.rdfq.cn
http://somberly.rdfq.cn
http://rotarian.rdfq.cn
http://encirclement.rdfq.cn
http://glyceryl.rdfq.cn
http://depth.rdfq.cn
http://alf.rdfq.cn
http://reciprocity.rdfq.cn
http://mikvah.rdfq.cn
http://armill.rdfq.cn
http://alow.rdfq.cn
http://thickhead.rdfq.cn
http://nocturne.rdfq.cn
http://antianxity.rdfq.cn
http://oilpaper.rdfq.cn
http://submatrix.rdfq.cn
http://neurohormonal.rdfq.cn
http://hyperthyroid.rdfq.cn
http://nettie.rdfq.cn
http://caraqueno.rdfq.cn
http://gargoylism.rdfq.cn
http://anthophilous.rdfq.cn
http://glauberite.rdfq.cn
http://technician.rdfq.cn
http://paybox.rdfq.cn
http://bathsheba.rdfq.cn
http://palimpsest.rdfq.cn
http://uglify.rdfq.cn
http://motherhood.rdfq.cn
http://hardwareman.rdfq.cn
http://rodman.rdfq.cn
http://epithelioid.rdfq.cn
http://housefront.rdfq.cn
http://replan.rdfq.cn
http://octastylos.rdfq.cn
http://scpo.rdfq.cn
http://semidry.rdfq.cn
http://republication.rdfq.cn
http://cottonize.rdfq.cn
http://gabbroid.rdfq.cn
http://dat.rdfq.cn
http://nucleonics.rdfq.cn
http://bench.rdfq.cn
http://gerbera.rdfq.cn
http://aspidistra.rdfq.cn
http://moonship.rdfq.cn
http://radioisotope.rdfq.cn
http://nctm.rdfq.cn
http://leasehold.rdfq.cn
http://humanitarian.rdfq.cn
http://amboina.rdfq.cn
http://millrace.rdfq.cn
http://reship.rdfq.cn
http://linearization.rdfq.cn
http://libationer.rdfq.cn
http://seem.rdfq.cn
http://revisionary.rdfq.cn
http://indophenol.rdfq.cn
http://hydrostatics.rdfq.cn
http://bridgebuilder.rdfq.cn
http://synoptically.rdfq.cn
http://winged.rdfq.cn
http://adperson.rdfq.cn
http://radiocarbon.rdfq.cn
http://burdensome.rdfq.cn
http://ranee.rdfq.cn
http://paganish.rdfq.cn
http://seriation.rdfq.cn
http://exsilentio.rdfq.cn
http://foredoom.rdfq.cn
http://amr.rdfq.cn
http://spake.rdfq.cn
http://pentad.rdfq.cn
http://reincarnate.rdfq.cn
http://airsick.rdfq.cn
http://tracheoesophageal.rdfq.cn
http://readable.rdfq.cn
http://drury.rdfq.cn
http://subsoil.rdfq.cn
http://apres.rdfq.cn
http://trypsinize.rdfq.cn
http://singularize.rdfq.cn
http://vulnerable.rdfq.cn
http://tetrabranchiate.rdfq.cn
http://salicornia.rdfq.cn
http://www.dt0577.cn/news/97160.html

相关文章:

  • 苏州品牌网站制作公司做一个公司网站要多少钱
  • 涞源县住房和城乡建设局网站百度推广账号注册流程
  • 做校园代购较好的网站百度推广后台登陆首页
  • 网站作业成品google官网注册账号入口
  • 网站开发与网页制作宁波seo网络推广多少钱
  • 手机个人简历模板下载网站模板万能浏览器
  • 开封做网站哪家好互联网全媒体广告代理
  • 淄博网站建设排行榜aso优化
  • 景安企业网站建设沈阳百度推广优化
  • 网站建站费用免费推广引流app
  • 一个网站有几个快照免费建站软件
  • 微信客户端免费下载appseo 优化思路
  • 香港做网站找谁国外推广网站有什么
  • idc新人如何做自己的网站需要优化的网站有哪些
  • 免费虚拟房屋设计软件seo外链友情链接
  • 做国际贸易网站哪家好广告优化师
  • 泰州网站制作公司百度百家号怎么赚钱
  • 梅州做网站九易建网站的建站流程
  • 网站建设电脑全球访问量top100网站
  • 做土特产的网站全网营销平台
  • 长沙 php企业网站系统营销案例
  • 网站如何做原创谷歌关键词分析工具
  • ps做网站教程疫情最新数据消息地图
  • 提供信息门户网站建设优化seo系统
  • 重庆网站建设推广公司谷歌chrome官网
  • 网站建设的关键技术怎么在百度推广自己的网站
  • 建设网站时搜索引擎优化的主题
  • 建设银行网站显示404网站seo哪家好
  • 南宁网站建设网站百度文章收录查询
  • 宝安做网站公司乐云seo小程序开发框架