#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <time.h>
#include<iomanip>
#include<array>
#include <algorithm>
using namespace std;
const int AS = 6;
void FillingRandomly(int [AS][AS]);
void printing(int[AS][AS]);
void forsorting(int[][AS], int);
int c;
int main()
{
int funny = 0;
int timpa = 0;
int counter = 0;
int Array[AS][AS];
srand(time(0));
FillingRandomly(Array);
cout << "The unsorted array is" << endl << endl;
printing(Array);
cout << "The sorted array is" << endl << endl;
forsorting(Array, funny);
printing(Array);
system("PAUSE");
return 0;
}
void FillingRandomly(int Array[AS][AS])
{
for (int i = 0; i<AS; i++)
{
for (int j = 0; j<AS; j++)
Array[i][j] = rand()%87 +12;
}
}
void printing(int Array[AS][AS])
{
int counter = 0;
for (int i = 0; i<AS; i++)
{
for (int j = 0; j<AS; j++)
{
cout << setw(5) << Array[i][j];
counter++;
if (counter%AS == 0)
cout << endl << endl;
}
}
}
void forsorting(int Array[AS][AS], int funny)
{
int w=0;
int dice = 0;
int Brray[AS*AS];
int super = 0;
int space=0;
//Transofrming Array[][] into Brray[]
for (int i = 0; i < AS; i++)
{
for (int k = 0; k < AS; k++)
{
Brray[space] = Array[k][i];
space++;
}
}
//Bubble sorting in Brray[]
for (int passer = 0; passer < AS-1; passer++)
{
for (int timpa = 0; timpa < AS-1; timpa++)
{
if (Brray[timpa]>Brray[timpa + 1])
{
super = Brray[timpa];
Brray[timpa] = Brray[timpa + 1];
Brray[timpa + 1] = super;
}
}
}
//Transforming Brray[] into sorted Array[][]
for (int j=0;j<AS;j++)
for (int i=0;i<AS;i++)
{
Brray[w]=Array[i][j];
}
w++;
}
好的,这是我的代码。我所需要做的就是排序部分,我编写了气泡排序技术,并且我仔细检查了我的课程,并且这是相同的逻辑。所以我想知道的是为什么我的数组在屏幕上打印出来时没有排序。排序阵列的问题
谢谢您的帮助
如果您希望人们阅读您的代码,请注意妥善布置它。您的缩进被打破,线条之间的空白太多。 – GreenAsJade
看看最后一部分,将Brray转换为有序的Array。也许你应该分配到阵列而不是布雷在双? – Noctua
为什么这是一个二维数组而不是一维数组? –