以螺旋方式打印矩阵的程序.(工作不好)
program which print a matrix in spiral way. ( is not working fine)
我需要编写一个程序,以螺旋方式显示矩阵的元素。我的程序运行不好。这是代码:
#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;
}
如果输入n=2和元素1、2、3、4,它将显示4-858993460和其他类似的数字。我的错在哪里?
在citireMatrice
中正确地使用了基于零的数组索引,但在spiral
中使用了基于一的索引。
您需要从0
开始循环,并在< n
结束循环。(考虑a
的哪个元素将首先打印出来。(
相关文章:
- 以螺旋方式打印矩阵的程序.(工作不好)
- 我的评分程序无法正常工作
- 如何解决在负数的情况下程序以相同方式工作的问题?
- 如何使实例化在我的 OpenGL 程序中工作?
- 我的 SDL2 程序需要哪些二进制文件,以便它在另一台未安装 SDL2 的计算机中工作
- 有没有办法在RCPP程序无法正常工作时阻止RGui崩溃?
- cout 在我的程序上无法正常工作,有人可以帮助我吗?
- C++程序工作,但 Windows 显示"程序.exe已停止工作"
- 程序在CLion IDE中工作,但exe不起作用
- 适用于 macOS 的 Xcode 应用程序。这就是我设置从USB麦克风输入获取音频的方式。一年前工作,现在没有了。为什么
- 为什么使用 exec() 重新启动程序不能正常工作?
- 使用程序生成来创建磁盘,但纹理无法正常工作
- 我无法让我的程序工作,我一直得到未定义的符号:C
- 所有Visual Studio安装程序崩溃,可视化构建工具也无法正常工作
- 名为DLL的C++windows服务程序工作不正常
- .exe应用程序在windows10中创建新模块时抛出错误,但在windows7中工作正常
- O2优化水平中断程序工作
- 从书本中学习C++无法使该程序与类一起工作
- r-工作程序中对自定义函数的未定义引用(C++和RcppParallel)
- 带有 Allegro 5 的工作程序不再起作用