Kezdőoldal » Számítástechnika » Programozás » Ezt, hogy kell átírni C-be?

Ezt, hogy kell átírni C-be?

Figyelt kérdés

Valahogy nem bírok rájönni... most kezdtem szeptemberben a programozást, de nehéz nagyon. Tanulok, de az ilyen logikai dolgokat, amiket érteni kell azok nem nagyon mennek... Sajnos első zhm 0 pontos lett. Bele lehet ebbe rázódni?


Ez lenne az:


// Orosz szorzás


#include <iostream>


using namespace std;


void oroszSzorzas(int a, int b, int & p){

// int p = 0;


while(a > 0){

if(a % 2 == 1)

p += b;


a /= 2;

b += b;

}

// return p;

}


int main(){

cout << " - orosz szorzas - \n\n";

int a, b, p;


cout << "a = "; cin >> a;

cout << "b = "; cin >> b;

oroszSzorzas(a, b, p);

//cout << "Szorzat = " << oroszSzorzas(a, b) <<endl;

cout << p << endl;

system("PAUSE");

return EXIT_SUCCESS;


}


2014. nov. 9. 20:03
1 2
 1/16 A kérdező kommentje:

Én így próbáltam átírni, de sajnos nem jó:


#include <stdio.h>

#include <stdlib.h>



void oroszSzorzas(int a, int b, int & p){

// int p = 0;


while(a > 0){

if(a % 2 == 1)

p += b;


a /= 2;

b += b;

}


int main()

{ printf (" - orosz szorzas - \n\n");

int a, b, p;


printf ("a = ");

scanf("%d", &a);


printf("b = ");

scanf("d", b);

oroszSzorzas(a, b, p);

//cout << "Szorzat = " << oroszSzorzas(a, b) <<endl;

printf("%d", p);


system("PAUSE");

return 0;

}

2014. nov. 9. 20:04
 2/16 anonim ***** válasza:
Ez nem programozás, hanem angol és értő olvasás. Az iostream lib helyett stdio-t kell használni a kiírásra (printf).
2014. nov. 9. 20:06
Hasznos számodra ez a válasz?
 3/16 anonim ***** válasza:

"scanf("d", b); " <- nem gyanús?


Egyébként ha nem írod le a hibát nehéz segíteni.

2014. nov. 9. 20:07
Hasznos számodra ez a válasz?
 4/16 A kérdező kommentje:

Első! Ezt sajnos nem értem...

Kijavítottam %d re, de még mindig nem fut le, mert szintaktikai hibát ír a voidhoz.

2014. nov. 9. 20:12
 5/16 anonim ***** válasza:
Az oroszSzorzas fv nincs lezárva.
2014. nov. 9. 20:29
Hasznos számodra ez a válasz?
 6/16 A kérdező kommentje:

Így se jó...

Kérek valaki, hogy írja már le nekem az egészet és így össze tudom, majd hasonlítani, hogy mi volt a hiba.

2014. nov. 9. 20:32
 7/16 anonim ***** válasza:
A szorzásfüggvény utolsó paramétere legyen ez: int* p, és amikor meghívod a függvényt, az utolsó paramétere legyen ez: &p, másrészt nem kell az a namespace, harmadrészt meghívtad a függvényedet, mint két paraméteres függvényt, az is hiba lesz.
2014. nov. 9. 20:37
Hasznos számodra ez a válasz?
 8/16 anonim ***** válasza:
100%
Ha c-fordítóval próbálod, akkor azért rossz mert c-ben nincsen referencia-átadás. Add át a pointert, vagy használd a visszatérési értéket.
2014. nov. 9. 20:38
Hasznos számodra ez a válasz?
 9/16 SimkoL ***** válasza:

#include <stdio.h>

#include <stdlib.h>


int oroszSzorzas(int a1, int b1){

int p1;

while(a1 > 0){

if(a1 % 2 == 1) p1 += b1;

a1 /= 2;

b1 += b1;}

return p1+1;

}


int main(){

printf (" - orosz szorzas - \n\n");

int a, b;

printf ("a = ");

scanf("%d", &a);

printf("b = ");

scanf("%d", &b);

printf ("Szorzat = %d\n", oroszSzorzas(a, b));

system("PAUSE");

return 0;

}

2014. nov. 9. 20:40
Hasznos számodra ez a válasz?
 10/16 A kérdező kommentje:
Nagyon köszönöm!
2014. nov. 9. 20:49
1 2

Kapcsolódó 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!