【问题标题】:Problems with special arrays in C++C++中特殊数组的问题
【发布时间】:2014-03-27 13:16:43
【问题描述】:

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

我需要编写一个程序:

1.创建以下特殊数组之一 (8x8):

一个。对角矩阵

b.低三角矩阵

c。高三角矩阵

d。对称矩阵

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

3。显示填充的数组

4.将数组转换为向量

5.使用线性搜索算法在向量中搜索用户指定的元素

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

一个。气泡

b.插入

c。选择

7.显示排序后的向量。

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

  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;

} 

【问题讨论】:

    标签: c++ arrays algorithm


    【解决方案1】:

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

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

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

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

    第二个出界了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多