Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C] errori da niubbo con funzione

    Mi sapete dire perchè nel seguente semplicissimo programma


    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    
    double base,output;
    int el;
    double pot(double num, int esp);	
      	
    main(void) {
    printf("Dammi il numero");
    scanf("%f", &base);
    printf("Dammi esponente");
    scanf("%d", &el);
    output=pot(base,el);
    
    printf("%f", output);
    
    system("pause");
    }
    
    double pot(double num, int esp) {
    double po;
    po=1;
    
    if (esp==0)return(1);
    
    else {
    while(esp--) po=po*num; ;
    return(po);
         }
                                     }
    se l'esponente è diverso da 0 l'output è sempre 0?

  2. #2
    prova cosi':
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    double pot(double , int );	
    
    double base,output;
    int el;
    
    int main() {
    printf("Dammi il numero");
    scanf("%f", &base);
    printf("Dammi esponente");
    scanf("%d", &el);
    output=pot(base,el);
    
    printf("%f", output);
    
    system("pause");
    return 0;
    }
    
    double pot(double num, int esp) {
    double po;
    po=1;
    
    if ( esp == 0 ) return 1;
    
    while( esp-- ) po=po*num;
    
    return po;
                                     }
    fammi sapere
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  3. #3
    anche con il tuo se faccio per esemio 2alla 2 dà sempre 0


    edit: uso devc++ su winxp

  4. #4
    prova cosi'...
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    float pot(float , int );	
    
    float base,output;
    int el;
    
    int main() {
    printf("Dammi il numero");
    scanf("%f", &base);
    printf("Dammi esponente");
    scanf("%d", &el);
    output=pot(base,el);
    
    printf("%f", output);
    
    system("pause");
    return 0;
    }
    
    float pot(float num, int esp) {
    float po=1;
    
    if ( esp == 0 ) return 1;
    
    while( esp-- > 0 ){
      po=po*num;
    po++;
    }
    return po;
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  5. #5
    nemmeno questo.... (2*2=7!, 2*2*2*2=41!) ma formalmente il mio primo esempio è scorreto?

  6. #6

    Re: [C] errori da niubbo con funzione

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    
    double base,output;
    int el;
    double pot(double num, int esp);	
      	
    main(void) {
    printf("Dammi il numero");
    scanf("%lf", &base); // <---- avevi messo %f, ma base è un double
    printf("Dammi esponente");
    scanf("%d", &el);
    output=pot(base,el);
    
    printf("%lf", output); // <-- uguale qui.
    
    system("pause");
    }
    
    double pot(double num, int esp) {
    double po;
    po=1;
    
    if (esp==0)return(1);
    
    else {
    while(esp--) po=po*num; ;
    return(po);
         }
                                     }
    Così dovrebbe andare
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  7. #7

    Re: Re: [C] errori da niubbo con funzione

    quando uno è un pirla è un pirla, non c'è niente da fare


    grazie 1000

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.