【发布时间】:2014-03-27 13:16:43
【问题描述】:
我正在通过解决为其他编程语言设计的问题来自学 C++。所以我会问很多问题。 我创建了一个非常有趣的,但我有点输了。
我需要编写一个程序:
1.创建以下特殊数组之一 (8x8):
一个。对角矩阵
b.低三角矩阵
c。高三角矩阵
d。对称矩阵
2。用 [-30..45] 范围内的随机整数填充它;
3。显示填充的数组
4.将数组转换为向量
5.使用线性搜索算法在向量中搜索用户指定的元素
6.使用以下算法之一对向量进行排序:
一个。气泡
b.插入
c。选择
7.显示排序后的向量。
我已经开始着手处理它了,但是我遇到了一些问题。
我不知道如何创建这些矩阵,我猜这与 for 循环有关。
我知道如何生成随机数,但不知道范围。
我可以使用 cout 函数显示数组,但它看起来不像矩阵。
什么是最好的改造方式?
如何实现这个搜索算法?
这是我的代码,我只是设法实现了排序算法,并创建了一个带有随机数的矩阵。但我认为我的做法不对。
#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;
}
【问题讨论】: