c++ - 以螺旋方式打印矩阵的程序。(不能正常工作)
问题描述
我需要编写一个以螺旋方式显示矩阵元素的程序。我的程序不能正常工作。这是代码:
#include <iostream>
using namespace std;
void citireMatrice(int a[100][100], int n) // function to read a matrix
{
int i, j;
for (i = 0; i < n; ++i)
{
for (j = 0; j < n; ++j)
{
cout<<"a[" << i << "][" << j << "]=";
cin >> a[i][j];
}
}
}
void spiral(int a[100][100], int n)
{
int i, j, k;
if (n % 2==0)
{
k = n / 2;
}
else
{
k = n / 2 + 1;
}
for (i = 1; i <= k; ++i)
{
for (j = 1; j <= n - i + 1; ++j)
{
cout << a[i][j] << " ";
}
for (j = i + 1; j <= n - i + 1; ++j)
{
cout << a[j][n - i + 1] << " ";
}
for (j = n-i; j >= i; j--)
{
cout << a[n - i + 1][j] << " ";
}
for (j = n-1;j>=i+1;j--)
{
cout << a[j][i];
}
}
}
int main()
{
int a[100][100];
int n;
cout << "n=";
cin >> n;
citireMatrice(a, n);
spiral(a, n);
return 0;
}
如果我使用元素 1、2、3、4 输入 n=2,它会显示 4 -858993460 和其他类似的数字。我的错误在哪里?
解决方案
您正确地使用了基于零的数组索引,citireMatrice
但spiral
您使用的是基于一的索引。
您需要在 开始循环0
并在 结束< n
。(考虑a
将首先打印出的元素。)
推荐阅读
- python - `peewee`如何获取外键的父模型
- codeigniter - Codeigniter:错误不能使用 CI_DB_mysqli_result 类型的对象作为数组
- html - 如何使图标和按钮具有相同的ID?
- javascript - 数组未在地图内呈现
- javascript - 我想要一种方法来使用另一个html代码在同一页面上调用js中存在的html代码
- java - 无法注册此节点:发送注册请求时出错:将 Selenium Grid 节点连接到 Grid Hub 失败
- node.js - 将 NodeJs 应用程序移动到新服务器导致 npm install 出错
- reactjs - React 路由器:exact 不适用于 TypeScript
- sql - 根据表中的值运行动态 sql,然后将它们附加到相同的结果集
- android - Android Play 商店更新等待时间 (08/2020)