自定义输入矩阵,顺时针输出或顺时针旋转后输出
注意:
c++是不支持使用变量构建数组的,虽然可以用vector的方式,但不太友好,所以我就直接构建了一个101*101的数组,就题目来说够用了。
我单独考虑了一维数组的情况,因为下面swich操作时,可能越界报错。
顺时针输出 代码如下:
#include <iostream>
using namespace std;int main() {int row;int col;cin >> row;cin >> col;string data[101][101];for (int i = 0; i < row; i++){for (int j = 0; j < col; j++){cin >> data[i][j];if (row == 1 || col == 1) {cout << data[i][j] << " ";}}}if (row == 1 || col == 1) {return 0;}//一维矩阵在读入的同时已经输出了int rownum = 0;int colnum = 0;int ward = 1;//0left 1right 2up 3downfor (int i = 0; i < row * col; i++){cout << data[rownum][colnum] << " ";data[rownum][colnum] = "0" + data[rownum][colnum];switch (ward) {case 0://0left 2upcolnum--;if (colnum == 0 || data[rownum][colnum - 1].at(0) == '0') {ward = 2;}break;case 1://1right 3downcolnum++;if (colnum == col - 1 || data[rownum][colnum + 1].at(0) == '0') {ward = 3;}break;case 2://1right 2uprownum--;if (rownum == 0 || data[rownum - 1][colnum].at(0) == '0') {ward = 1;}break;case 3://0left 3downrownum++;if (rownum == row - 1 || data[rownum + 1][colnum].at(0) == '0') {ward = 0;}break;default:cout << "ward error" << endl;}}return 0;
}
顺时针旋转矩阵后 输出旋转后的矩阵 代码如下:
#include <iostream>
using namespace std;int main() {int n;int degree;cin >> n;cin >> degree;int data[101][101];for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){cin >> data[i][j];}}switch (degree % 360){case 0:for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cout << data[i][j] << " ";}cout << endl;}break;case 90:for (int i = 0; i < n; i++) {for (int j = n - 1; j >= 0; j--) {cout << data[j][i] << " ";}cout << endl;}break;case 180:for (int i = n - 1; i >= 0; i--) {for (int j = n - 1; j >= 0; j--) {cout << data[i][j] << " ";}cout << endl;}break;case 270:for (int i = n - 1; i >= 0; i--) {for (int j = 0; j < n; j++) {cout << data[j][i] << " ";}cout << endl;}break;default:break;}}
自定义输入矩阵,顺时针输出或顺时针旋转后输出相关推荐
- 5-2交换实数下面的程序,输入两个实数,交换后输出。请在空白处填写适当内容完成此程序。#include <stdio.h>void RealSwap(double *x, doubl
5-2 交换实数 下面的程序,输入两个实数,交换后输出. 请在空白处填写适当内容完成此程序. #include <stdio.h> void RealSwap(double *x, dou ...
- 使用printf函数输出其ascii。_输入一个N*N的矩阵,将其转置后输出。要求:不得使用任何数组(就地逆置)。...
#include<bits/stdc++.h> using namespace std; int main() {int n,a;while(cin>>n) //输入矩阵的维度 ...
- java输入矩阵规格和行数,输出矩阵
java键盘输入的小例子 键盘输入矩阵的行数和列数,再输入矩阵的内容,输出矩阵. 这样子写可以不受固定行数列数的限制,你自己来定义行数和列数,自己输入内容.也可以应用到计算矩阵的加减乘数里面,方便就对 ...
- 如果x≥0,则,否则。编写程序,输入一个整数x,计算后输出对应的y值。
#include <stdio.h> int main() { int x,y; printf("请输入x:"); scanf("%d",& ...
- Java编程题小练习(初级):输入10个整数并进行排序输出。
程序代码: package com.xingzhao.Test; /** 题目描述:输入10个整数,排序后输出.* * 分析:* 1.输入10个整数,存储为数组* 2.使用冒泡排序法将数组排序* 3. ...
- 编写一个C程序,实现以下功能:编写一个常规的函数和一个递归函数,两个函数均能将输入的一个字符串以按反序形式的字符串作为返回值。在main函数中输入一行字符串,分别调用两个函数,输出反序后的字符串。
题目要求: 编写一个C程序,实现以下功能:编写一个常规的函数和一个递归函数,两个函数均能将输入的一个字符串以按反序形式的字符串作为返回值.在main函数中输入一行字符串,分别调用两个函数,输出反序后的 ...
- ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。
题目描述 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参.输出已交换后的两个值. 输入 两个数,空格隔开 输出 交换后的两个数,空格隔开 样例输入 1 2 样例输出 2 ...
- ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串
题目描述 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串. 输入 一行字符 输出 逆序后的字符串 样例输入 123456abcdef 样例输出 fedcba654321 来源 ...
- ACMNO.19 C语言-对角求和 求一个3×3矩阵对角线元素之和。 输入 矩阵 输出 主对角线 副对角线 元素和 样例输入 1 2 3 1 1 1 3 2 1 样例输出 3 7
这个我做了改进,可以实现NXN的矩阵.求出对角线之和! 只需要修改定义的define z的值就好! 接下来,进入正题! 题目描述: 求一个3×3矩阵对角线元素之和. 输入 矩阵 输出 主对角线 副对角 ...
最新文章
- 【项目展示】自己用C语言编写的汉诺塔小游戏
- [Git] 写文章 史上最全文献检索、阅读及管理攻略
- nodejs中服务器返回响应信息中的中文乱码
- 用计算机对音频信息进行处理 要将模拟信号,第五章 练习题
- python logging
- Vue-admin工作整理(四):路由组件传参
- JavaScript中this指向
- python实现实时监控_基于 Python 的交换机实时监控系统的设计与实现
- Raid学习——raid0、raid1、raid5、raid0+1、raid1+0
- 如何选择bfs和dfs
- 改造Python中文拼音扩展库pypinyin补充自定义声母全过程
- FISCO BCOS 区块链应用开发步骤
- Windows 超级终端设置
- 【算法学习】 位运算中的奇巧淫记
- mac 上格式化磁盘出现MediaKit报告设备上的空间不足以执行请求的解决办法
- 全球重磁异常以及水深数据分享
- 判断两个String类型的是s1,s2是否相等?
- Python文件处理os模块介绍 -*- Python基础知识12 -*-
- MyEclipse中jer配置
- 奔跑吧,Python!