Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet for ciklussal...

2105as kérdése:

Hogyan lehet for ciklussal hatványozást csinálni? (c nyelvben)

Figyelt kérdés
2016. okt. 29. 23:38
 1/3 anonim ***** válasza:
Ez egy abszolút kezdő szintű feladat, tessék legalább próbálkozni és valami kódot beköhögni ide, akkor tudunk segíteni.
2016. okt. 29. 23:53
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

Ilyenkor sajnos mindig jön egy barom állat (én), aki el is magyarázza a megoldást, amit már kismillióan megtettek az interneten, csak a kedves kérdező b_szik keresni a neten és venni a fáradságot a probléma megoldására.


A hatványozás valójában az, hogy egy számot valahányszor összeszorzunk önmagával.

Pl. 6 az 5.-en az nem más, mint 6*6*6*6*6


Szóval azt tudni kell, hogy mi a hatványalap és mi a kitevő:

int Alap = 6;

int Kitevo = 5;


Az eredményt valahol tárolni kell. Kiindulva abból a nagy tudásból, hogy minden szám 0. hatványa 1, és kezdetben még egyszer sem szoroztuk össze a számot önmagával, így:

int Eredmeny = 1;


Na most pedig megcsináljuk a szorzást. Azt ugye tudni kell majd, hogy eddig hányszor szoroztuk össze a számot önmagával:

int Lepesek;

for (Lepesek = 1; Lepesek <= Kitevo; Lepesek++)

Eredmeny *= Alap;


Az eredmény az Eredmeny változóban van. Hozzátenném, hogy ez csak olyan esetekben működik, ahol a hatványkitevő természetes szám vagy 0.

2016. okt. 30. 00:09
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:

Nabasszus, a copy-paste kódot elfelejtettem, ne haragudj!


#include <stdio.h>

#include <stdlib.h>

#include <locale.h>


int main() {

.. setlocale(LC_ALL, "hun"); //Windows alatt csak így lesz ékezetes betű a konzolon.


.. int Alap;

.. int Kitevo;


.. printf("Hatványalap: ");

.. if (scanf("%d", &Alap) != 1) { //Szokás elfelejteni az ilyen ellenőrzéseket. Pedig nem kellene.

.. .. fprintf(stderr, "Nem egész számot adtál meg!");

.. .. return EXIT_FAILURE;

.. }


.. printf("Kitevő: ");

.. if (scanf("%d", &Kitevo) != 1) {

.. .. fprintf(stderr, "Nem egész számot adtál meg!");

.. .. return EXIT_FAILURE;

.. }


.. int Eredmeny = 1;

.. int Lepes;

.. for (Lepes = 1; Lepes <= Kitevo; Lepes++)

.. .. Eredmeny *= Alap;


.. printf("Az eredmény: %d\n", Eredmeny);

.. return EXIT_SUCCESS;

}

2016. okt. 30. 00:20
Hasznos számodra ez a válasz?

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!