步骤:
- 建立一个10*10的矩阵
- 随机产生100个0~9的数填入矩阵
- 每一行利用冒泡法从小到大排序
- 显示出每一行的首元素为最佳路径
- 最后将最佳路径相加
- 代码如下:
#include <stdio.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
void optimal_path()
{
int sum_step = 0;
const int n = 10;
int p = 0;
printf("系统正在随机产生路径!\n");
Sleep(1);
srand(time(NULL));
int path[n*n];
for (int k = 0; k < n*n; k++)
{
int m = rand() % 10;
path[k] = m;
printf("path[%d]=%d\n", k, path[k]);
}
printf("你开始现在最优路径,从第一行走到最后一行!(0表示没有路)\n");
Sleep(1);
int temp;
int square[n][n];
for (int l = 0; l < n; l++)
{
for (int o = 0; o < n; o++)
{
square[l][o] = path[p++];
}
}
for (int y = 0; y < n; y++)
{
for (int z = 0; z < n; z++)
{
printf("%d ", square[y][z]);
}
printf("\n");
}
for (int i = 0; i < n; i++)
{
for (int x = 0; x < n - 1; x++)
{
for (int j = 0; j < n; j++)
{
if (square[i][j] > square[i][j + 1])
{
temp = square[i][j];
square[i][j] = square[i][j + 1];
square[i][j + 1] = temp;
}
}
}
Sleep(1);
printf("你从第[%d]行的:[%d]号路走!\n", i, square[i][0]);
sum_step += square[i][0];
}
printf("你总共走了[%d]条路\n", n);
printf("你总共走了[%d]步!\n", sum_step);
}
int main(int argc, char** argv)
{
optimal_path();
return 0;
}
本人大部分代码开放免费,用于交流学习,有bug时还望指出,请勿直接抄袭,谢谢!