Δημοσιεύτηκε: 02 Σεπ 2011, 19:38
από Star_Light
θα παραθέσω και τον κωδικα που είχα απο παλιά με τις δυνάμεις με μια καλη (κατα την γνωμη μου τροποποιηση) που του κανω.

Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>
int raiseToPower(int basen, int n);

int main()
{

int basen, n;
int z,i;

printf("\nPoses dunameis arithmwn thelete na upologisete? \n");
scanf("%d",&z);

for(i=0; i<z; i++)
{
printf("Give the base: ");
scanf("%d",&basen);
printf("Give the exponent: ");
scanf("%d",&n);
if(n<0)
{
printf("\n Invalid value \n");
z++; // An o xristis dwsei 2 fores upologismo kai h 1 einai me arnitiki dunami tote
// Exei invalid value kai oi 2 fores diathrounte se sugrisi me prin pou eixe mono alli 1
// enw kanonika eixe dwsei 2 kai athela tou evale enan arnhtiko arithmo san ektheti
continue;
}
printf("The result is : %d^%d = %d\n", basen, n, raiseToPower(basen, n));
}


return 0;
}


int raiseToPower(int basen, int n )
{

if(n==0)
return 1;

return( basen * raiseToPower(basen, n-1) );
}


Λοιπον αυτος ο κωδικας... καταρχην ειναι παρμενος ετοιμος αλλα του εχω βαλει οταν ο χρηστης ζηταει υπολογισμο 2 φορες σε μια δυναμη
ακομη και αν εχει δωσει invalid τιμη (αρνητικο εκθετη - υποθετουμε πως δεν ειναι σκοπος του προγραμματος να υπολογιζει αρνητικους εκθετες ) τοτε παραμενει ο αριθμος του υπολογισμου της συναρτησης σε 2 και οχι σε 1 (1 ακυρη + 1 εγκυρη) :D

συνεχιζουμε..... μετα απο αυτο το "break" :lol: :lol: