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

    [C]problema stampa puntatori

    sera a tutti ragazzi, sono ancora inesperto e trovo non poche difficoltà a gestire i puntatori, qualcuno può aiutarmi a capire perchè la stampa del minimo non funziona?

    ecco qui il codice
    codice:
    #include <stdio.h>
    #include <malloc.h>
    #include <conio.h>
    int DIM=1;
    
    void DimVet(int **vet[], int *DIM)
    {
            do
            {
                    printf("\n\nInserisci la nuova dimensione del vettore(intero positivo): ",*DIM);
                    scanf("%d",DIM);
            }while(*DIM<=0);
            *vet = (int *)realloc(*vet, *DIM * sizeof(int));
            printf("\nLa nuova nuova dimensione del vettore e' %d\n", *DIM);
    }
    
    
       void RandVet(int vet[],int DIM)
        {
            int i,MIN,MAX;
            printf("\nDefinisci l'intervallo di estrazione degli elementi del vettore (min e max) ");
            printf("\nMIN = ");scanf("%d",&MIN);
            do{printf("\nMAX = ");scanf("%d",&MAX);}while(MAX<MIN);
            for(i=0;i<DIM;i++)
            {
                vet[i]=rand()%(MAX-MIN+1)+MIN;
                printf("\nVET[%d]=%d",i,vet[i]);
            }
        }
    
    
    
    int PosMin(int vet[],int DIM)
        {
            int i,posmin=0;
            for(i=1;i<DIM;i++)
                if(vet[posmin]>vet[i]) posmin=i;
            return posmin;
        }
    
    
    void Scelta(int **vet[],int *DIM)
    {
    DimVet(vet,DIM);
    RandVet(*vet,*DIM);
    printf("\nIl minimo vale %d ed occupa la posizione %d",vet[PosMin(*vet,*DIM)],PosMin(*vet,*DIM));
    }
    
    int main()
        {
            int *vet;
            vet=malloc(sizeof(int) * DIM);
            srand(time(NULL));
            Scelta(&vet,&DIM);
            free(vet);
            vet=NULL;
            return 0;
        }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: [C]problema stampa puntatori

    Le modifiche nelle linee in rosso ... a te il compito di comprenderle ...

    codice:
    #include <stdio.h>
    #include <malloc.h>
    #include <conio.h>
    int DIM=1;
    
    void DimVet(int **vet, int *DIM)
    {
            do
            {
                    printf("\n\nInserisci la nuova dimensione del vettore(intero positivo): ",*DIM);
                    scanf("%d",DIM);
            }while(*DIM<=0);
            *vet = (int *)realloc(*vet, *DIM * sizeof(int));
            printf("\nLa nuova nuova dimensione del vettore e' %d\n", *DIM);
    }
    
    
       void RandVet(int vet[],int DIM)
        {
            int i,MIN,MAX;
            printf("\nDefinisci l'intervallo di estrazione degli elementi del vettore (min e max) ");
            printf("\nMIN = ");scanf("%d",&MIN);
            do{printf("\nMAX = ");scanf("%d",&MAX);}while(MAX<MIN);
            for(i=0;i<DIM;i++)
            {
                vet[i]=rand()%(MAX-MIN+1)+MIN;
                printf("\nVET[%d]=%d",i,vet[i]);
            }
        }
    
    
    
    int PosMin(int vet[],int DIM)
        {
            int i,posmin=0;
            for(i=1;i<DIM;i++)
                if(vet[posmin]>vet[i]) posmin=i;
            return posmin;
        }
    
    
    void Scelta(int **vet, int *DIM)
    {
      DimVet(vet,DIM);
      RandVet(*vet,*DIM);
      
      int posmin = PosMin(*vet,*DIM);
      printf("\nIl minimo vale %d ed occupa la posizione %d", (*vet)[posmin], posmin);
    }
    
    int main()
        {
            int *vet;
            vet=malloc(sizeof(int) * DIM);
            srand(time(NULL));
            Scelta(&vet,&DIM);
            free(vet);
            vet=NULL;
            return 0;
        }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3

    Re: Re: [C]problema stampa puntatori

    Originariamente inviato da oregon
    Le modifiche nelle linee in rosso ... a te il compito di comprenderle ...

    codice:
    #include <stdio.h>
    #include <malloc.h>
    #include <conio.h>
    int DIM=1;
    
    void DimVet(int **vet, int *DIM)
    {
            do
            {
                    printf("\n\nInserisci la nuova dimensione del vettore(intero positivo): ",*DIM);
                    scanf("%d",DIM);
            }while(*DIM<=0);
            *vet = (int *)realloc(*vet, *DIM * sizeof(int));
            printf("\nLa nuova nuova dimensione del vettore e' %d\n", *DIM);
    }
    
    
       void RandVet(int vet[],int DIM)
        {
            int i,MIN,MAX;
            printf("\nDefinisci l'intervallo di estrazione degli elementi del vettore (min e max) ");
            printf("\nMIN = ");scanf("%d",&MIN);
            do{printf("\nMAX = ");scanf("%d",&MAX);}while(MAX<MIN);
            for(i=0;i<DIM;i++)
            {
                vet[i]=rand()%(MAX-MIN+1)+MIN;
                printf("\nVET[%d]=%d",i,vet[i]);
            }
        }
    
    
    
    int PosMin(int vet[],int DIM)
        {
            int i,posmin=0;
            for(i=1;i<DIM;i++)
                if(vet[posmin]>vet[i]) posmin=i;
            return posmin;
        }
    
    
    void Scelta(int **vet, int *DIM)
    {
      DimVet(vet,DIM);
      RandVet(*vet,*DIM);
      
      int posmin = PosMin(*vet,*DIM);
      printf("\nIl minimo vale %d ed occupa la posizione %d", (*vet)[posmin], posmin);
    }
    
    int main()
        {
            int *vet;
            vet=malloc(sizeof(int) * DIM);
            srand(time(NULL));
            Scelta(&vet,&DIM);
            free(vet);
            vet=NULL;
            return 0;
        }

    grazie, davvero... ma non riesco a capire il senso delle parentesi

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Di quali parentesi?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    (*vet)

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    vet è un doppio puntatore e quindi con (*vet) ottieni il puntatore al vettore ... cosa non comprendi?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.