HWOD:二维数组下标合法性判断

一、知识点

1、停止读取的判定条件有两种写法

(1):while(scanf()!=EOF)

(2):while(scanf()>0)

在代码提交平台(1)和(2)都可以用

在本地,只能用(2),且要有非法输入的配合。比如要读取的是整数,但输入了字符串,scanf()就会返回0,不满足条件,停止读取。

2、二维数组可以存储在一维数组中

二维数组可以存储在一维数组中,读取的时候  i+=原一维数组的长,即可

二、题目

1、描述

有一个m∗n 大小的数据表,你会依次进行以下5种操作:

1.输入m 和 n ,初始化m∗n 大小的表格。

2.输入x1​、y1​、x2​、y2​,交换坐标在(x1​,y1​)和(x2​,y2​)的两个数。

3.输入x ,在第x 行上方添加一行。

4.输入y ,在第y 列左边添加一列。

5.输入x 、 y ,查找坐标为(x,y) 的单元格的值。

请编写程序,判断对表格的各种操作是否合法。

详细要求:

1.数据表的最大规格为9行*9列,对表格进行操作时遇到超出规格应该返回错误。

2.对于插入操作,如果插入后行数或列数超过9了则应返回错误。如果插入成功了则将数据表恢复至初始化的m∗n 大小,多出的数据则应舍弃。

3.所有输入坐标操作,对m∗n 大小的表格,行号坐标只允许0~m-1,列号坐标只允许0~n-1。超出范围应该返回错误。

本题含有多组样例输入!行列从0开始标号

数据范围:数据组数:1≤t≤5

2、输入

输入数据按下列顺序输入:
1 表格的行列值
2 要交换的两个单元格的行列值
3 输入要插入的行的数值
4 输入要插入的列的数值
5 输入要查询的单元格的坐标

3、输出

输出按下列顺序输出:
1 初始化表格是否成功,若成功则返回0, 否则返回-1
2 输出交换单元格是否成功
3 输出插入行是否成功
4 输出插入列是否成功
5 输出查询单元格数据是否成功

三、自己写的代码

#include<stdio.h>
int main() {int line[60] = {0};int n, i = 0;while (scanf("%d", &line[i]) > 0) {i++;}n = i;i = 0;while (i < n) {//1if (line[i] > 9 || line[i + 1] > 9) {printf("-1\n");} else {printf("0\n");}//2if (line[i + 2] > line[i] - 1 || line[i + 4] > line[i] - 1 ||line[i + 3] > line[i + 1] - 1 || line[i + 5] > line[i + 1] - 1) {printf("-1\n");} else {printf("0\n");}//3if (line[i + 6] > line[i] - 1 || line[i] == 9) {printf("-1\n");} else {printf("0\n");}//4if (line[i + 7] > line[i + 1] - 1 || line[i + 1] == 9) {printf("-1\n");} else {printf("0\n");}//5if (line[i + 8] > line[i] - 1 || line[i + 9] > line[i + 1] - 1) {printf("-1\n");} else {printf("0\n");}i += 10;}return 0;
}

四、测试

本组样例共有2组样例输入。
第一组样例:
1.初始化数据表为4行9列,成功
2.交换第5行1列和第2行6列的数据,失败。因为行的范围应该是(0,3),不存在第5行。
3.在第0行上方添加一行,成功。
4.在第8列左边添加一列,失败。因为列的总数已经达到了9的上限。
5.查询第2行第3列的值,成功。
第二组样例:
1.初始化数据表为4行7列,成功
2.交换第4行2列和第3行2列的数据,失败。因为行的范围应该是(0,3),不存在第4行。
3.在第3行上方添加一行,成功。
4.在第3列左边添加一列,成功。
5.查询第4行7列的值,失败。因为虽然添加了一行一列,但数据表会在添加后恢复成4行7列的形态,所以行的区间仍然在[0,3],列的区间仍然在[0,6],无法查询到(4,7)坐标。 

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

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

相关文章

Freemarker 的配置

Freemarker是一种用于生成动态模板的Java模板引擎。它可以将数据与模板文件结合&#xff0c;生成最终的输出内容。以下是使用Freemarker的实现和配置步骤&#xff1a; 引入Freemarker库&#xff1a;首先需要将Freemarker库添加到项目的依赖中。可以通过在Maven或Gradle中添加相…

PS入门|如何让模糊的图片变得清晰?

前言 前段时间的PS入门讲的都是如何抠图、抠图、抠图。小白都快抠出三室一厅了&#xff0c;不知道学习的小伙伴如何了。 如果在学习过程中没有练习的照片&#xff0c;那直接使用每一篇文章的照片即可&#xff0c;学PS最忌讳的就是光看不练&#xff0c;眼睛会了&#xff0c;手…

ELK日志分析系统+Filebeat

目录 一、Filebeat介绍 1、Filebeat简介 2、Filebeat的工作方式 3、filebeat工作流程 4、Filebeat的作用 5、filebeat的用途 1.为什么要用filebeat来收集日志&#xff1f;为什么不直接用logstash收集日志&#xff1f; 2.filebeat和logstash的区别 二、部署(ELFK)Fileb…

qt进阶2:windows下可执行程序崩溃生成dmp,定位崩溃问题。

系列文章目录 文章目录 系列文章目录前言一、dmp文件生成二、使用步骤1.代码案例2.运行截图 前言 qt编译的可执行程序在windows下崩溃可生成dmp文件&#xff0c;用于调试定位崩溃原因。 一、dmp文件生成 略 二、使用步骤 1.代码案例 代码如下&#xff08;示例&#xff09;&…

ubuntu或类Debian获取某些包的离线版本-包括依赖(还有一些意想不到的用途,哈哈)

前言 偶尔能碰到很特殊的情况。网址白名单&#xff0c;纯内网&#xff0c;超多依赖及一些很难描述的场景。 比如一些少见的发行版缺少某些包。这时候可以找一台类似的系统环境来下载离线包及 其依赖包&#xff0c;然后转移到内网进行安装。如果是网址白名单&#xff0c;或者纯内…

【架构-8】Lambda和Kappa架构

Lambda架构&#xff1f; Lambda架构&#xff08;三层架构&#xff09;&#xff1a; &#xff08;1&#xff09;将数据处理分为实时和离线两部分。离线部分通过批量计算处理数据&#xff0c;实时部分则通过增加追加方式将数据合并到批处理中。 &#xff08;2&#xff09;批处理…

Harmony鸿蒙南向驱动开发-ADC接口使用

ADC&#xff08;Analog to Digital Converter&#xff09;&#xff0c;即模拟-数字转换器&#xff0c;可将模拟信号转换成对应的数字信号&#xff0c;便于存储与计算等操作。除电源线和地线之外&#xff0c;ADC只需要1根线与被测量的设备进行连接&#xff0c;其物理连线如图1所…

基于WEB的水库水情自动测报系统的研究与设计(论文+源码)_kaic

摘要 水情信息是水利管理最重要的基础信息&#xff0c;是水文预报、水资源管理、防汛抗旱决策的主要依据。水情自动测报系统是一个自动采集、传输、处理水情信息的实时测报系统&#xff0c;可对水库流域内的水情、水文和气象数据&#xff0c;如雨量、流量、水位等&#xff0c;实…

Unity 中画线

前言&#xff1a; 在Unity项目中&#xff0c;调试和可视化是开发过程中不可或缺的部分。其中&#xff0c;绘制线条是一种常见的手段&#xff0c;可以用于在Scene场景和Game视图中进行调试和展示。本篇博客将为你介绍多种不同的绘制线条方法&#xff0c;帮助你轻松应对各种调试…

华为海思数字芯片设计笔试第四套

声明 下面的题目作答都是自己认为正确的答案&#xff0c;并非官方答案&#xff0c;如果有不同的意见&#xff0c;可以评论区交流。 这些题目也是笔者从各个地方收集的&#xff0c;感觉有些题目答案并不正确&#xff0c;所以在个别题目会给出自己的见解&#xff0c;欢迎大家讨论…

Java springboot+vue宠物爱心组织管理系统附赠万字文档

项目演示视频: &#xff08;有文档&#xff09;Java springboot宠物爱心组织管理系统 项目介绍: &#xff08;有文档&#xff09;Java springboot宠物爱心组织管理系统 技术&#xff1a; 基于springboot Vue 的宠物爱心组织管理系统&#xff08;宠物爱心组织管理系统&#xf…

HarmonyOS实战开发-如何使用@ohos.security.huks相关接口实现对任意输入内容进行加密和解密的功能。

介绍 本示例使用ohos.security.huks相关接口实现了对任意输入内容进行加密和解密的功能。 实现场景如下&#xff1a; 1&#xff09;使用新密钥进行消息加解密传输&#xff1a;使用HUKS的生成密钥接口在本地生成一个新密钥&#xff0c;模拟设备对发送的消息进行加密和对接收的…