Visualizzazione dei risultati da 1 a 6 su 6

Visualizzazione discussione

  1. #6
    ok non sono un genio in programmazione ma ci sto provando sul serio quindi ti chiedo un altra dritta..
    per quanto riguarda il valore di ritorno quello che hai scritto è giusto pertanto ho pensato di fare restituire alla mia funzione un puntatore ad array dinamico e sperando che l'idea sia corretta ho modificato il codice in questo modo:

    codice:
    # include <stdio.h>
    # include <stdlib.h>
    # define MAX 100
    
    
    //Funzione cerca
    int *cerca(int vettore[10], int elem, int dimensione,int*p) {
        int i, j = 0;
        for (i = 0; i < dimensione; i++) {                                  //scorro il vettore
            if (vettore[i] == elem) {
                p[j] = i;
                j++;
            }
        }
        return(p);
    }
    
    
    int main() {
    
    
        //Dichiarazioni
    
    
        int vettore[MAX];
        int i,*p;
        int dimensione, elem;
        int risultato_ricerca;
    
    
        printf("inserisci la dimensione del vettore\n");
        scanf_s("%d", &dimensione);
        if (dimensione > 100 || dimensione < 0){
            printf("grandezza inserita non valida\n");
            scanf_s("%d", &dimensione);
        }
        p = (int*)malloc(dimensione*sizeof(int));    //allocazione dell'array in modo dinamico la cui dimensione sarà uguale a vettore[10] nel caso limite in cui quest'ultimo contenga un solo numero 
        if (p == NULL) {
            exit(1);
        }
    
    
        printf("inserisci dei valori nel vettore:\n");
        for (i = 0; i < dimensione; i++){
            scanf_s("%d", &vettore[i]);
        }
        printf("Vettore:\n");
        for (i = 0; i < dimensione; i++) {
            printf("%d ,", vettore[i]);
        }
    
    
        printf("valore da cercare:\n");
        scanf_s("%d", &elem);
        printf("elem = %d\n", elem);
            risultato_ricerca = *cerca(vettore, elem, dimensione,p);
            printf("%d\n", risultato_ricerca);
        
    
    
        system("pause");
        return(0);
    }
    però non funziona lo stesso...come posso fare?
    Ultima modifica di mauro86; 19-01-2015 a 12:58

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.