Kezdőoldal » Számítástechnika » Programok » Miért csinálja így (C++)?

Miért csinálja így (C++)?

Figyelt kérdés

int N = 3;

double A[N+1][N+1];

for (int m=1; m<=N; m++)

{

A[1][m] = A[1][m]/A[1][1];

}


Először az m helyébe behelyettesíti az 1-et. Kiszámolja, hogy A[1][1]/A[1][1] = 1. Ez lesz az új A[1][1]. De amikor az m helyébe behelyettesíti a 2-t, kiszámolja, hogy A[1][2]/A[1][1], az eredeti A[1][2]-t kapom vissza, tehát eggyel osztotta az A[1][2]-t. Miért az új A[1][1]-gyel osztja, miért nem a régivel? Hogy lehet ezen segíteni?



2019. máj. 9. 14:07
 1/4 anonim ***** válasza:

Mert így működik a Turing gép. A for vezérlési szerkezeten belül sem egyszerre fut le az összes ciklus, hanem egymás után, tehát a második ciklusnál már a módosított A[1][1] értéket fogja alapul venni. Ha szükséged van az eredeti értékre, akkor célszerű egy külön változóban tárolni:


for (int m=1, double valami = A[1][1]; m<=N; m++){

A[1][m] = A[1][m]/valami;

}

2019. máj. 9. 14:21
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

int N = 3;

double A[N+1][N+1];

for (int n=1; n<=N; n++)

{

for (int m=1; m<=N; m++)

{

A[n][m] = A[n][m]/A[n][n];

}

}


Na és ha így van? ↑ Mi legyen az A[n][n]-nel? Ha elmentem egy egydimenziós array-be, az nem működik.

2019. máj. 9. 14:35
 3/4 anonim ***** válasza:

for (int n=1; n<=N; n++){

..for (int m=1, double valami = A[n][n]; m<=N; m++){

....A[n][m] = A[n][m]/valami;

..}

}


Így működnie kellene. Egyébként van valami oka annak, hogy nem 0-ról indexelsz?

2019. máj. 9. 14:50
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
#3 Működik. Nem pont úgy, ahogy írtad, de működik.
2019. máj. 12. 02:28

További kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!