🔥个人主页:艾莉丝努力练剑

❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题

🍉学习方向:C/C++方向

⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平



前言:上一篇博客又带大家刷了一些相对来说简单的代码题目,本篇文章我们将继续练习下面的题目。这些题目的难度已经有的挖了大坑,大家做的时候要留意,如果做不出来,看了代码演示后要自己多敲几遍,去理解代码的逻辑。

宇宙安全声明:鉴于博主能力有限,本专栏适用于代码小白刷题,大佬们多多包涵(抱拳)!


目录

正文

一、班级成绩输入输出

二、矩阵元素定位

三、序列重组矩阵

四、最高身高

五、矩阵相等判定

六、上三角矩阵判定

七、矩阵转置

八、矩阵交换

九、杨辉三角

十、井字棋

结尾


正文

一、班级成绩输入输出

BC101 班级成绩输入输出

这道题没什么好讲的,我们写一个嵌套循环,先输入各科成绩,再加起来,输出各科成绩和总分即可。注意打印各科成绩的时候有一个空格。

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>int main()
{int i = 0;for (i = 0; i < 5; i++){double sum = 0.0;int j = 0;double score = 0.0;for (j = 0; j < 5; j++){scanf("%lf", &score);sum += score;printf("%.1lf ", score);}printf("%.1lf\n", sum);}return 0;
}

也可以这样写——

#include <stdio.h>int main()
{int i = 0;double score[5] = { 0 };for (i = 0; i < 5; i++){int j = 0;double sum = 0.0;for (j = 0; j < 5; j++){scanf("%lf", &score[j]);sum += score[j];}for (j = 0; j < 5; j++){printf("%.1lf ", score[j]);}printf("%.1lf\n", sum);}return 0;
}

二、矩阵元素定位

BC102 矩阵元素定位

我们直接看代码——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>int main()
{int m = 0;int n = 0;int x = 0;int y = 0;scanf("%d %d", &n, &m);//这是c99语法-变长数组,但是数组不能初始化int arr[n][m];//具体给值也行int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d ", &arr[i][j]);}}scanf("%d %d", &x, &y);printf("%d\n", arr[x - 1][y - 1]);return 0;
}

当然,如果我们直接把这组代码放到VS2022上调试,会报这样的错误—— 

大家想想,怎么改就可以了,可以把你想到的答案在评论区展示一下。 

uu们一定要读题读仔细,n和m是有范围的,我们改一下——

#include <stdio.h>int main()
{int m = 0;int n = 0;int arr[5][5] = { 0 };scanf("%d %d", &n, &m);int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d ", &arr[i][j]);}}int x = 0;int y = 0;scanf("%d %d", &x, &y);printf("%d\n", arr[x - 1][y - 1]);return 0;
}

三、序列重组矩阵

BC103 序列重组矩阵

看完题目,我们直接尝试写出代码——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>int main()
{int n = 0;int m = 0;scanf("%d%d", &n, &m);int i = 0;int tmp = 0;for (i = 1; i <= m * n; i++){scanf("%d", &tmp);printf("%d ", tmp);if (i % m == 0)printf("\n");}return 0;
}

 空格可以在取地址那儿,也可以直接放在两个%d之间——

#include <stdio.h>int main()
{int n = 0;int m = 0;scanf("%d %d", &n, &m);int i = 0;int tmp = 0;for (i = 1; i <= m * n; i++){scanf("%d", &tmp);printf("%d ", tmp);if (i % m == 0)printf("\n");}return 0;
}

四、最高身高

BC104 最高身高

思路:先输入n和m,再创建x和y并赋初值,写一个for循环嵌套,输入身高,再比较大小,比出最高的身高就会跳出循环, 输出打印最高身高——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>int main()
{int n = 0;int m = 0;scanf("%d %d", &n, &m);int i = 0;int j = 0;int max = 0;int x = 0;int y = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){int height = 0;scanf("%d ", &height);if (height > max){x = i;y = j;max = height;}}}printf("%d %d", x + 1, y + 1);return 0;
}

写里面也可以——

#include <stdio.h>int main()
{int n = 0;int m = 0;scanf("%d %d", &n, &m);int max = 0;int x = 0;int y = 0;for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){int height = 0;scanf("%d ", &height);if (height > max){x = i;y = j;max = height;}}}printf("%d %d", x + 1, y + 1);return 0;
}

五、矩阵相等判定

BC105 矩阵相等判定

 我们试着把代码写出来——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int n = 0;int m = 0;scanf("%d%d", &n, &m);int a1[n][m];int a2[n][m];int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a1[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a2[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){if (a1[i][j] != a2[i][j])break;}}if (i == n && j == m){printf("Yes\n");}else{printf("No\n");}return 0;
}

题目有范围要求:1 < m,n < 10——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int n = 0;int m = 0;scanf("%d%d", &n, &m);int a1[10][10];int a2[10][10];int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a1[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a2[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){if (a1[i][j] != a2[i][j])break;}}if (i == n && j == m){printf("Yes\n");}else{printf("No\n");}return 0;
}

 

六、上三角矩阵判定

BC106 上三角矩阵判定

 我们把代码敲一下——

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);int a[n][n];int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < n; j++){scanf("%d", &a[i][j]);}}//判断for (i = 0; i < n; i++){for (j = 0; j < n; j++){if (i > j){if (a[i][j] != 0){//下三角有不是0的就不满足printf("NO");return 0;}}}}printf("YES");return 0;
}

 同样的道理——

#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);int a[10][10];int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < n; j++){scanf("%d", &a[i][j]);}}//判断for (i = 0; i < n; i++){for (j = 0; j < n; j++){if (i > j){if (a[i][j] != 0){//下三角有不是0的就不满足printf("NO");return 0;}}}}printf("YES");return 0;
}

 

七、矩阵转置

BC107 矩阵转置

我们直接写—— 

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int n = 0;int m = 0;scanf("%d%d", &n, &m);int a[n][m];int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a[i][j]);}}//转置for (i = 0; i < m; i++)//3{for (j = 0; j < n; j++)//2{printf("%d ", a[j][i]);}printf("\n");}return 0;
}

 

八、矩阵交换

BC108 矩阵交换

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int m = 0;//列int n = 0;//行int arr[10][10] = { 0 };int cnt = 0;//操作的次数char op = 0;//代表操作的字符int a = 0;int b = 0;//读取数据scanf("%d%d", &n, &m);int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &arr[i][j]);}}scanf("%d", &cnt);for (i = 0; i < cnt; i++){//读取操作指令//注释解释://scanf("%d", &a);//scanf(" %c", &c); // 消耗 %d 后的所有后继空白符,然后读一个 charscanf(" %c %d %d", &op, &a, &b);//执行操作if (op == 'r'){//交换a和b行for (j = 0; j < m; j++){int tmp = arr[a - 1][j];arr[a - 1][j] = arr[b - 1][j];arr[b - 1][j] = tmp;}}else if (op == 'c'){//交换a和b列for (j = 0; j < n; j++){int tmp = arr[j][a - 1];arr[j][a - 1] = arr[j][b - 1];arr[j][b - 1] = tmp;}}}//输出for (i = 0; i < n; i++){for (j = 0; j < m; j++){printf("%d ", arr[i][j]);}printf("\n");}return 0;
}

1、如果是%c读取字符,一定要清理前面输入时留下的空白字符;

2、注意二维数组的下标。

 

九、杨辉三角

BC109 杨辉三角

我们之前写过杨辉三角的题目,但是比这个简单,我们先看看这道题的代码—— 

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{int arr[30][30] = { 0 };int i = 0;int j = 0;int n = 0;scanf("%d", &n);for (i = 0; i < n; i++){for (j = 0; j <= i; j++){if (i == j)arr[i][j] = 1;if (j == 0)arr[i][j] = 1;if (i > 1 && j > 0)arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}for (i = 0; i < n; i++){for (j = 0; j <= i; j++){printf("%5d", arr[i][j]);}printf("\n");}return 0;
}

 这道题就要这样写了——

#define  _CRT_SECURE_NO_WARNINGS  1#include<stdio.h>int YangHuiTriAngle(int arr[][4],int n)
{for (int i = 0; i < n; i++){for (int j = 0; j <= i; j++){if (i == 0 || i == j){arr[i][j] = 1;}else{arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];}}}
}int main()
{int arr[4][4] = { 0 };YangHuiTriAngle(arr, 4);for (int i = 0; i < 4; i++){for (int j = 0; j <= i; j++){printf("%d ", arr[i][j]);}}printf("\n");return 0;
}

 

十、井字棋

BC110 井字棋

这道题我们写出来是这样的—— 

#define  _CRT_SECURE_NO_WARNINGS  1#include <stdio.h>
int main()
{char arr[3][3] = { 0 };int i = 0;int j = 0;char flag = 'c';for (i = 0; i < 3; i++){for (j = 0; j < 3; j++){scanf("%c", &arr[i][j]);getchar();}}for (i = 0; i < 3; i++){if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2]){flag = arr[i][1];break;}if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i]){flag = arr[1][i];break;}}if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2]){flag = arr[1][1];}if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0]){flag = arr[1][1];}if (flag == 'K')printf("KiKi wins!");else if (flag == 'B')printf("BoBo wins!");elseprintf("No winner!");return 0;
}

结尾

往期回顾:

【C语言刷题】第九天:加量加餐继续,代码题训练,融会贯通IO模式

【C语言刷题】第八天:加量加餐继续,代码题训练,熟练IO模式

【C语言刷题】第七天:加量加餐继续,代码题训练,熟练IO模式

【C语言刷题】第六天:继续加量加餐,代码题训练,熟练IO模式

【C语言刷题】第五天:继续加量加餐,代码题训练,熟练IO模式

【C语言刷题】第四天:继续加量加餐,代码题入门,熟练IO模式

【C语言刷题】第三天:继续加量加餐,代码题入门,熟练IO模式

【C语言刷题】第二天:加量加餐,代码入门,熟悉IO模式

【C语言刷题】第一天:简单代码入门,熟悉IO模式

结语:本篇文章带大家刷了十道题目,大家认真思考一下,结合知识点就能想出来,大家一定要及时回顾前面刷过的题目。本文到这里就结束了,希望对友友们有所帮助。本文的代码相比起之前的题目,难度上已经有了加深,大家要上手操作,后面的代码题难度上整体是逐渐递增的,博主控制了难度,这样友友们能比较丝滑地上手敲下去。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/89698.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89698.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/89698.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【WEB】Polar靶场 6-10题 详细笔记

六.jwt 这题我又不会写 先来了解下jwt **JWT&#xff08;JSON Web Token&#xff09;**是一种基于JSON的开放标准&#xff08;RFC 7519&#xff09;&#xff0c;主要用于在网络应用环境间传递声明信息。JWT通常用于身份验证和信息交换&#xff0c;确保在各方之间安全地传输信…

高阶亚马逊运营秘籍:关键词矩阵打法深度解析与应用

当竞争对手还在为单个大词竞价厮杀时&#xff0c;头部卖家已悄然构建了一张覆盖数千长尾关键词的隐形网络&#xff0c;精准触达每一个细分需求&#xff0c;以更低的成本撬动更高的转化率在亚马逊流量红利消退、广告成本高企的2025年&#xff0c;传统“爆款关键词”打法已显疲态…

【问题解决】org.springframework.web.util.NestedServletException Handler dispatch failed;

详细异常信息&#xff1a; org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter at org.springframework.web.servlet.DispatcherServlet.doDispatch(Disp…

【已解决】mac 聚焦搜索设置了edge 的地址栏搜索为google,还是跳转到百度

问题详情&#xff1a;在macbook的聚焦搜索中点击edge搜索的时候&#xff0c;跳转到了百度&#xff0c;即使已经将地址栏的搜索引擎设置为了goole&#xff0c;但是还是会跳转到百度。解决方案&#xff1a;1、打开safari浏览器。&#xff08;看清了&#xff0c;是打开Safari&…

MimicMotion 让你的图片动起来

MimicMotion 是由腾讯公司推出的一款人工智能人像动态视频生成框架。可以模仿视频动作再让图片模仿动作姿态&#xff0c;最后生成视频。 MimicMotion 的核心在于其置信度感知的姿态引导技术&#xff0c;确保视频帧的高质量和时间上的平滑过渡。 以前咱们也手搭过Animate-X让图…

云计算考核 - 分析电子银行需求采用微服务架构对系统进行设计

二、使用的技术以及分析 微服务&#xff08;Microservices&#xff09;是一种架构风格&#xff0c;一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署&#xff0c;各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在…

Ionic 安装使用教程

一、Ionic 简介 Ionic 是一个基于 Web 技术&#xff08;HTML、CSS、JavaScript&#xff09;的跨平台移动应用开发框架&#xff0c;结合 Angular、React 或 Vue 可快速构建 iOS 和 Android 应用。Ionic 提供丰富的 UI 组件、命令行工具及原生插件封装&#xff0c;广泛用于混合应…

渗透测试 - 简介

Web渗透测试简介 Web渗透测试&#xff08;Penetration Testing&#xff09;是一种模拟黑客攻击的安全评估方法&#xff0c;旨在发现Web应用程序中的漏洞&#xff0c;帮助开发者修复问题并提升系统安全性。它涉及主动测试目标系统&#xff08;如网站或API&#xff09;的弱点&am…

云原生AI研发体系建设路径

当AI遇上云原生&#xff0c;就像咖啡遇上牛奶&#xff0c;总能擦出不一样的火花 ☕️ &#x1f4cb; 文章目录 引言&#xff1a;为什么要建设云原生AI研发体系整体架构设计&#xff1a;搭建AI研发的"乐高积木"技术栈选择&#xff1a;选择合适的"武器装备"…

【网络安全】深入理解 IoC 与 IoA:从“事后识别”到“事前防御”

1. 简介 在网络安全领域&#xff0c;IoC&#xff08;Indicators of Compromise&#xff0c;入侵指标&#xff09; 和 IoA&#xff08;Indicators of Attack&#xff0c;攻击指标&#xff09; 是两个核心概念。它们是安全分析师识别攻击行为、调查事件、制定防御策略的重要依据…

贪心专题练习

牛牛学括号题目要求每次操作必须删除一个左括号和一个右括号&#xff0c;且删除后序列仍需合法。合法的括号序列要求每个右括号之前必须有对应的左括号。分析输入的都是合法的括号&#xff0c;即左括号右括号&#xff0c;可利用这一点去解题注意&#xff1a;中间取模是必要的&a…

屏幕分辨率修改工具 SwitchResX(Mac电脑)

苹果电脑屏幕分辨率修改工具&#xff0c;SwitchResX for Mac&#xff0c;可以为您提供控制显示器分辨率所需的工具和功能。 原文地址&#xff1a;屏幕分辨率修改工具 SwitchResX&#xff08;Mac电脑&#xff09;

【Java编程动手学】Java中的数组与集合

文章目录 一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问与修改元素1.2.3 数组遍历 1.3 二维数组1.3.1 声明与初始化1.3.2 访问与遍历 1.4 三维数组及更高维数组1.5 数组类(Arrays)1.5.1 常用方法 1.6 复制数组1.6.1 系统复制方法1.6.2 手动复制 二…

Linux在线安装docker

1.切换阿里云镜像源 备份原有 repo 文件 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载阿里云的 CentOS 7 repo 文件 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 清华 sudo…

第十五节:第四部分:特殊文件:XML的生成、约束(了解即可)

如何使用程序把数据写出到XML文件中去 什么是约束XML的书写(了解即可) DTD约束文档的使用(了解即可) schema约束文档的使用(了解即可) 代码&#xff1a;如何使用程序把数据写出到XML文件中去 package com.itheima.day2_xml;import java.io.BufferedWriter; import java.io.Fil…

cd-agent更换cd模型(自用)

需求&#xff1a;将12服务器上&#xff0c;原有的cd-agent&#xff08;目录为/home/xgq/agent&#xff09;&#xff0c;复制一份&#xff0c;重命名为/home/xgq/agent_lx。之前的推理流程是A B两张图输进去&#xff0c;通过clip模型进行领域分类&#xff0c;若是遥感领域就用ch…

微信小程序31~40

1.事件绑定和事件对象 小程序中绑定事件没有on 方式&#xff0c;也没有click,小程序中可以用bind方法&#xff0c;click事件也需要用tap事件来进行代替。 绑定事件分为两种&#xff1a; bind:事件名&#xff0c;eg: <view bind:tap"fnName"><view/>bind事…

二叉树题解——二叉树的直径【LeetCode】

543. 二叉树的直径 一、算法逻辑&#xff08;逐步通顺讲解每一步思路&#xff09; &#x1f3af; 问题目标&#xff1a; 求二叉树中任意两个节点之间的最长路径&#xff08;以边数计算&#xff09;。 ✅ 1️⃣ 初始化变量 ans 用于记录目前遍历过程中的最大直径&#xff08;…

Android开发 Android10及10+读取外部存储问题

前提 &#xff1a; 在做文件遍历时&#xff0c;有的文件在Android10无法访问&#xff0c;在注册清单下添加android:requestLegacyExternalStorage"true"后可正常访问&#xff0c;但一直不知道具体原因。 使用XXPermissions时读到Android10分区存储后才明白这里的逻辑…

IP地理定位技术综述:理论、方法与应用创新(三)

[1]刘学婷,台文鑫,周帆,等.IP地理定位技术综述:理论、方法与应用创新[J].通信学报,2025,46(04):33-48. 2 IP地理定位应用场景 基于 IP 地理定位技术的特性和多样化应用场景,本文将其主要应用分为地理定位服务、网络安全与优化、网络空间测绘3类,如图7所示。基于IP地理定位…