2016-09-06 99 views
0

我對C++比較陌生,所以請有憐憫。我試圖在二維數組40 * 20中指定「矢量」的開始和結束。但是「b」不會被放在最後2個循環中。最後,我想顯示2個向量,第二個向量從[0] [0]開始,並沿着與用戶輸入的方向相同的方向。我也不知道如何讓b從線的起點到線的終點,而不僅僅是起點和終點。但主要問題是x不隨b改變。C++,控制檯,cout 2D矢量數組

感謝您的幫助。

#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; 
} 

回答

0

您將所有元素display設置爲'x'。然後你打印dispaly的內容。然後然後您將兩個元素的內容更改爲b。您不要再次打印陣列。

在之後執行打印更改數組。


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

+0

大聲笑我是這樣一個小孩非常感謝你。 –

+0

它現在有效,沒有它的循環工作,也感謝tou Joachim! –