Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C] MCD con puntatore

  1. #1

    [C] MCD con puntatore

    codice:
    // MCD.cpp : definisce il punto di ingresso dell'applicazione console.
    //
    
    #include "stdafx.h"
    #include "math.h"
    
    int main (void)
    
    {	
    	int a = 0;
    	int b = 0;
    	int r = 0;
    	int mcd = 0;
    	 int *mod = &r; 
    
    		printf(" Inserire il valore di A\n");
    			scanf("%d",&a);
    			getchar();	
    
    		printf(" Inserire il valore di B\n");
    			scanf("%d",&b);
    			getchar();
    
    			 r = (a%b); 
    			
    
    if (r==0)
    		{ 
    
    			printf("Il MCD e B  %d    \n\n",b);
    	
    		}
    
     if (a > b)
    {
    	while (*mod != 0);
    	{
    				
    			*mod=&r;
    			a= b;
    			b=r;
    			r=(a%b);
                            mcd=b;
    
    	}
    }
    	
    printf("il MCD e'( %d,%d ) = %d \n\n ",a,b,mcd);
    		 return 0;
    }

    salve dovrei calcolare il MCD di 2 valori inseriti da tastiera pero non riesco a usare il puntatore del while , questo dovrebbe puntare a mod , ovvero il valore di r ,
    inoltre poi dovrebbe anche essere aggiornato nella procedura in modo avere r(a%b) come posso fare ??


    grazie
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [C] MCD con puntatore

    mod è già un puntatore. Se lo deferenzi, metti in *mod non il valore di r, ma il suo indirizzo.

    Originariamente inviato da Alessio86
    codice:
    	while (*mod != 0);
    	{
    				
    			/* *mod=&r; */
                            mod=&r; 
    			a= b;
    			b=r;
    			r=(a%b);
                            mcd=b;
    
    	}

  3. #3
    codice:
    #include "stdafx.h"
    #include "math.h"
    
    int main (void)
    
    {	
    	int a = 0;
    	int b = 0;
    	int r = 0;
    	int mcd = 0;
    	int*mod = &r;
    	
    
    		printf(" Inserire il valore di A\n");
    			scanf("%d",&a);
    			getchar();	
    
    		printf(" Inserire il valore di B\n");
    			scanf("%d",&b);
    			getchar();
    
    			r = (a % b); // Non calcolo il modulo, idem con questa sintassi r=a%b;
    			
    
    
    
    if (a > b)
    {
    	while (*mod != 0);     //non calcolando R salta questa istruzione ...
    	{
    				
    		    mod=&r; 
    			a= b;
    			b=r;
    			r=(a%b);   // come sopra  
                mcd=b;
    
    	}
    }
    if (r == 0)
    		{ 
    
    			printf("Il MCD e B  %d    \n\n",b);
    	
    		}
    
    	
    printf("il MCD e'( %d,%d ) = %d \n\n ",a,b,mcd);
    		 return 0;
    }
    Per qualche motivo non fa il modulo di R=a%b e nn capisco il xche ?
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    C'è anche un ; di troppo (Non l'avevo visto prima, sorry)
    Originariamente inviato da Alessio86
    codice:
    	while (*mod != 0);  <-- non avevo visto il ;
    	{
    				
    		    mod=&r; 
    			a= b;
    			b=r;
    			r=(a%b);   // come sopra  
                mcd=b;
    
    	}

  5. #5
    Grazie 1000 funziona //* comincio ad odiare i puntatori e ancora devo arrivare agli arrey*//


    questo e il MCD.exe



    codice:
    #include "stdafx.h"
    #include "math.h"
    
    int main (void)
    
    {	
    	int a = 0;
    	int b = 0;
    	int r = 0;
    	int mcd = 0;
    	int*mod = &r;
    	
    
    		printf(" Inserire il valore di A\n");
    			scanf("%d",&a);
    			getchar();	
    
    		printf(" Inserire il valore di B\n");
    			scanf("%d",&b);
    			getchar();
    
    			r = (a % b);
    			
    
    
    
    if (a > b && r !=0)
    {
    	while (*mod != 0)
    	{
    				
    		    mod=&r; 
    			a= b;
    			b=r;
    			r=(a%b);
                mcd=b;
    
    	}
    	printf("il MCD e'( %d,%d ) = %d \n\n ",a,b,mcd);
    }
    
    else if (r == 0)
    		{ 
    
    			printf("Il MCD e B  %d    \n\n",b);
    
    		}
    
    	else if (a == b)
    		{ 
    
    			printf("Il MCD e A  %d    \n\n",a);
    
    		}
    
    
    		 return 0;
    
    }
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  6. #6
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Io non potrei vivere senza invece

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.