PROBLEMA Prova del 9 in c return 1

Pubblicità

davidson

Nuovo Utente
Messaggi
33
Reazioni
5
Punteggio
26
salve ragazzi ho avuto un problema con questo esercizio, ho creato un progetto composto da main.c funzioni.c funzioni .h , l'esercizio funziona ma non ritorna 1 se sbagliata la moltiplicazione ma solamente 0 in entrambi i casi

Progetto


funzioni.c
Codice:
#include<stdio.h>

  2 #include<stdlib.h>
  3 #include<math.h>
  4
  5                         int sommav(int num)
  6 {
  7
  8                         int  app;
  9
10                         app=0;
11
12
13                         while(num>0)
14
15                         {
16                                 app = app + (num%10);
17
18                                 num = num/10;
19
20
21                         }
22                                 return app;
23 
24
25 }               
26
27
28       
29                                 int radice(int n)
30
31
32 {               
33                               
34
35                                 while(n>=10)
36
37
38                                 {
39
40                                         n = sommav(n);
                                    }
                                            return n;
    }
main.c
Codice:
#include<stdio.h>

#include<stdlib.h>
#include"math.h"
#include"funzioni.h"

                int main()
{
                int num1,num2,num3,prod,rad1,rad2,rad3;

               
           
                printf("inserisci il  primo numero\n");

                scanf("%d",&num1);

           
                   
       
               
                printf ("inserisci il secondo numero\n");
               
                scanf("%d",&num2);


               


                printf("inserisci il terzo numero\n");

                scanf("%d",&num3);


               
                rad1 = radice(num1);

                  printf("la radice del primo numero e %d\n",rad1);

                rad2 = radice(num2);

                printf("la rarice del secondo numero e' %d\n",rad2);
                rad3 = radice(num3);

                printf("la radice del terzo numero e' %d\n",rad3);


                prod = radice(rad1*rad2);

                printf("la radice del prodotto del primo numero e del secondo numero e'%d\n",prod);
               

                    if( prod == rad3)
                   
                    {

                    printf("la moltiplicazione e' forse  giusta\n");

                           

                    }


                            else

                            {

                            printf("la moltiplicazione e' sbagliata\n");
       
                                   
                            }
                       

                            return 0;






                       

    }

funzioni.h

Codice:
int radice(int);
int sommav(int);
int prodotto(int,int);



Esercizio in esecuzione
L6vP4vX.png

HTp5Jny.png


Testing richiesto dal professore per vedere se la moltiplicazione e' giusta
PYt1Agc.png


Testing richiesto dal professore per vedere se la moltiplicazione e' sbagliata
g2eAhVd.png







 
salve ragazzi ho avuto un problema con questo esercizio, ho creato un progetto composto da main.c funzioni.c funzioni .h , l'esercizio funziona ma non ritorna 1 se sbagliata la moltiplicazione ma solamente 0 in entrambi i casi

Progetto


funzioni.c
Codice:
#include<stdio.h>

  2 #include<stdlib.h>
  3 #include<math.h>
  4
  5                         int sommav(int num)
  6 {
  7
  8                         int  app;
  9
10                         app=0;
11
12
13                         while(num>0)
14
15                         {
16                                 app = app + (num%10);
17
18                                 num = num/10;
19
20
21                         }
22                                 return app;
23
24
25 }              
26
27
28      
29                                 int radice(int n)
30
31
32 {              
33                              
34
35                                 while(n>=10)
36
37
38                                 {
39
40                                         n = sommav(n);
                                    }
                                            return n;
    }
main.c
Codice:
#include<stdio.h>

#include<stdlib.h>
#include"math.h"
#include"funzioni.h"

                int main()
{
                int num1,num2,num3,prod,rad1,rad2,rad3;

              
          
                printf("inserisci il  primo numero\n");

                scanf("%d",&num1);

          
                  
      
              
                printf ("inserisci il secondo numero\n");
              
                scanf("%d",&num2);


              


                printf("inserisci il terzo numero\n");

                scanf("%d",&num3);


              
                rad1 = radice(num1);

                  printf("la radice del primo numero e %d\n",rad1);

                rad2 = radice(num2);

                printf("la rarice del secondo numero e' %d\n",rad2);
                rad3 = radice(num3);

                printf("la radice del terzo numero e' %d\n",rad3);


                prod = radice(rad1*rad2);

                printf("la radice del prodotto del primo numero e del secondo numero e'%d\n",prod);
              

                    if( prod == rad3)
                  
                    {

                    printf("la moltiplicazione e' forse  giusta\n");

                          

                    }


                            else

                            {

                            printf("la moltiplicazione e' sbagliata\n");
      
                                  
                            }
                      

                            return 0;






                      

    }

funzioni.h

Codice:
int radice(int);
int sommav(int);
int prodotto(int,int);



Esercizio in esecuzione
L6vP4vX.png

HTp5Jny.png


Testing richiesto dal professore per vedere se la moltiplicazione e' giusta
PYt1Agc.png


Testing richiesto dal professore per vedere se la moltiplicazione e' sbagliata
g2eAhVd.png






Allora, innanzitutto va' bene strutturare tutto in questa maniera, ma questi non sono codici imponenti e ci si incappa spesso in questi errori quando si va' a dividere e spezzettare molto, se non lo hai già fatto ti direi di farne una versione "accorpata" di questo codice, senza richiamare funzioni e main dall'esterno, ma tutto in un solo file.
Poi, hai messo un return 0 alla fine del codice, per quale motivo esattamente?
Prova ad accorpare e a togliere proprio quel return, vedi se cambia qualcosa.
Se hai una traccia integrale dell'esercizio e puoi postarla sarebbe d'aiuto :cavallo:
 
Allora, innanzitutto va' bene strutturare tutto in questa maniera, ma questi non sono codici imponenti e ci si incappa spesso in questi errori quando si va' a dividere e spezzettare molto, se non lo hai già fatto ti direi di farne una versione "accorpata" di questo codice, senza richiamare funzioni e main dall'esterno, ma tutto in un solo file.
Poi, hai messo un return 0 alla fine del codice, per quale motivo esattamente?
Prova ad accorpare e a togliere proprio quel return, vedi se cambia qualcosa.
Se hai una traccia integrale dell'esercizio e puoi postarla sarebbe d'aiuto :cavallo:
ho risolto il problema , grazie comunque ,l'esercizio richiede di dividerlo in parti per farci abituare a stutturare un programma in piu file
 
Pubblicità
Pubblicità
Indietro
Top