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

    [C] Problema ordinamento (puntatori...)

    ragazzi, ho ancora problemi con i puntatori, perchè ancora non mi funziona?


    codice:
    #include <stdio.h>
    #include <malloc.h>
    #include <conio.h>
    int DIM=1;
    
    
    void OrdinaBC(int **vet,int DIM)
        {
            int i,flag=1,n=DIM-1;int appoggio;
            do
            {
                flag=0;
                for(i=0;i<n;i++)
                    if(*vet[i]>*vet[i+1])
                    {
                        appoggio= *vet[i];
                        *vet[i]=*vet[i+1];
                        *vet[i+1]=appoggio;
                        flag++;
                    }
                n--;
            }while(flag>0);
        }
    
    
    
    
    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]);
            }
        }
    
    
    void DimVet(int **vet, int *DIM)
    {
            int temp=*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);
            getch();
            RandVet(*vet,*DIM);
            OrdinaBC(vet,*DIM);
    }
    
    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);
    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
    A parte il fatto che dovresti fermarti e studiare bene l'argomento puntatori (intendo dire, lascia stare la tastiera e stai 3 mesi sui libri ...) ... a parte questo, cosa vuol dire

    "non mi funziona"

    ?

    Potresti dare maggiori dettagli ? Errori in compilazione ? A runtime ?

    In ogni caso guarda che

    *vet[i]

    NON è uguale a

    (*vet)[i]

    per una questione di precedenze degli operatori ... a buon intenditor ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    il programma va in crash durante la funziona di ordinamento, avevo già provato la soluzione che mi hai proposto ma non funziona lo stesso

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... non l'hai provato ...
    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.