C ++,console,cout二维数组中的向量

时间:2016-09-06 16:14:52

标签: c++ arrays vector console 2d

我是C ++的新手,所以请怜悯。我想尝试在2D阵列40 * 20中开始和结束“矢量”。但是“b”不会被放在最后2个for循环中。最后我想显示2个向量,第二个向量从[0] [0]开始,并且与用户输入的方向相同。我也不知道怎么做,让b从线的起点到线的终点,而不仅仅是起点和终点。但主要问题是x不会随b改变。

感谢您的帮助。

#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

int vectorsx;
int vectorsy;
int vectorendx;
int vectorendy;
char display[40][40];
char row;
char column;

typedef struct
{
   double x;
   double y;
}punkt;

typedef struct
{
   punkt PA;
   punkt PE;
}vector;


void query()
{
   cout << "Startpunkt x:";
   cin >> vectorsx;
   cout << "Startpunkt y:";
   cin >> vectorsy;

   cout << "Endpunkt x:";
   cin >> vectorendx;
   cout << "Endpunkt y:";
   cin >> vectorendy;

}

int main()
{
   query();

   vector v;

   v.PA.x = vectorsx;
   v.PA.y = vectorsy;
   v.PE.x = vectorendx;
   v.PE.y = vectorendy;

   vector v2;

   v2.PA.x = 0;
   v2.PA.y = 0;
   v2.PE.x = v.PE.x - v.PA.x;
   v2.PE.y = v.PE.y - v.PA.y;



   for (int row = 0; row < 20; row++)
   {
      for (int column = 0; column < 40; column++)
      {
         display[row][column] = 'x';
      }
   }


   for (int row = 0; row < 20; row++)
   {
      for (int column = 0; column < 40; column++)
      {
         cout << display[row][column];
      }                 
      cout << endl;
   }


   for (row = 0; row < 20; row++)
   {
      for(column = 0; column < 40;column++)
      { 
         display[vectorsx][vectorsy] = 'b';

      }
   }

   for (row = 0; row < 20; row++)
   {
      for (column = 0; column < 40; column++)
      {
         display[vectorendx][vectorendy] = 'b';
      }
   }

   system("Pause");
   return 0;
}

1 个答案:

答案 0 :(得分:0)

您将display的所有元素设置为'x'。然后打印dispaly的内容。然后然后将两个元素的内容更改为b。你不能再次打印阵列了。

在更改阵列后进行打印。

您也不需要更改循环,您将相同的元素更改800次。