gpt4 book ai didi

c++ - C++中特殊数组的问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:27:40 26 4
gpt4 key购买 nike

我正在通过解决为其他编程语言设计的问题来自学 C++。所以我会问很多问题。我创立了一个非常有趣的公司,但我有点迷路了。

我需要编写一个程序:

<强>1。创建这些特殊数组之一 (8x8):

一个。对角矩阵

低三角矩阵

高三角矩阵

对称矩阵

<强>2。用 [-30..45] 范围内的随机整数填充它;

<强>3。显示填充的数组

<强>4。将数组转换为 vector

<强>5。使用线性搜索算法在 vector 中搜索用户指定的元素

6.使用以下算法之一对 vector 进行排序:

一个。气泡

插入

选择

7.显示排序后的 vector 。

我已经开始着手处理它,但我遇到了一些问题。

  1. 我不知道如何创建这些矩阵,我想这与 for 循环有关。

  2. 我知道如何生成随机数,但不知道范围。

  3. 我可以使用 cout 函数显示数组,但它看起来不像矩阵。

  4. 什么是最好的转型方式?

  5. 如何实现这个搜索算法?

这是我的代码,我刚刚设法实现了排序算法,并创建了一个带有随机数的矩阵。但我认为我的做法不对。

#include <algorithm>
#include <iostream>
#include <vector>
#include <time.h>
using namespace std;
template<typename ForwardIterator>
void selectionSort(ForwardIterator begin, ForwardIterator end) {
for (ForwardIterator i = begin; i != end; ++i)
iter_swap(i, min_element(i, end));


}
template<typename Iterator>
void bubbleSort(Iterator first, Iterator last)
{
Iterator i, j;
for (i = first; i != last; i++)
for (j = first; j < i; j++)
if (*i < *j)
{
iter_swap(i, j);
}
}

void insertion_sort(int arr[], int length) {
int i, j, tmp;
for (i = 1; i < length; i++) {
j = i;
while (j > 0 && arr[j - 1] > arr[j]) {
tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
j--;
}//end of while loop

}//end of for loop
}//end of insertion_sort.



int main()
{

int method, matrixTYPE, arr[8][8];
for (int i = 0; i < 8; i++)

{

arr[i][i] = (rand() % 44) + -30;

}
for (int i = 0; i < 16; i++)
{
cout << arr[i][i] << endl;
}
system("pause");



return 0;

}

最佳答案

您需要两个嵌套循环来访问二维数组的所有元素:

for (int i = 0; i < 8; ++i)
for (int j = 0; j < 8; ++j)
arr[i][j] = 42;

您的第一个循环仅分配给沿对角线的元素:

[X] [ ] [ ] [ ]
[ ] [X] [ ] [ ]
[ ] [ ] [X] [ ]
[ ] [ ] [ ] [X]

第二个越界了。

关于c++ - C++中特殊数组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22688853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com