Vettori e interi

di il
6 risposte

Vettori e interi

Salve a tutti ,mi sono iscritto da poco e avrei una domanda sui vettori.
Stavo tentando di fare un semplice programma che assegna il valore di un vettore (int vettore[40]) a una comunissima variabile intera (int variabile1=0) in base a determinate ckndizioni. però mi succede una cosa "strana".
Nel momento in cui mi stampa i risultati finali nel printf la variabile1 rilascia numeri assurdi che io non ho inserito (per esempio': 1009383) cosa sbaglio?

6 Risposte

  • Re: Vettori e interi

    Benvenuto sul forum!

    Per quanto riguarda il tuo problema o aspetti qualche utente con doti divinatorie oppure dovresti postare il codice in questione.
    Capisco che magari hai iniziato da poco, ma come pretendi che possiamo aiutarti con le informazioni che ci hai dato!? La cosa paradossale poi è che non ci dici nulla sulle condizioni e sulle modalità di inizializzazione dell'array, ma poi specifichi i nomi delle variabili e i numeri errati che ti vengono stampati.
  • Re: Vettori e interi

    Il problema, in generale, e' il seguente:
    quando tu scrivi 'int v[40]', tu richiedi al sistema di assegnare a 'v' 40*sizeof(int)= 320 byte.
    Ora, questi byte non vengono inizializzati da nessuno, e quindi contengono dei valori a caso (non sono proprio a caso, anzi, ma per il momento e' sufficiente) che la 'printf' interpreta come un valore intero valido.

    Questo e' il motivo generale.

    Senza vedere il TUO codice, ovviamente non ti si puo' aiutare in modo piu' 'puntuale'.
  • Re: Vettori e interi

    Per esempio può essere che usi a sproposito l'operatore & nella printf ma se non mostri il codice, come ti è stato detto di fare, come si fa a dirti qualcosa di preciso?

    P.S. Migliorabile, perché dai per scontato un intero a 8 byte ...
  • Re: Vettori e interi

    Nippolo ha scritto:


    Benvenuto sul forum!

    Per quanto riguarda il tuo problema o aspetti qualche utente con doti divinatorie oppure dovresti postare il codice in questione.
    Capisco che magari hai iniziato da poco, ma come pretendi che possiamo aiutarti con le informazioni che ci hai dato!? La cosa paradossale poi è che non ci dici nulla sulle condizioni e sulle modalità di inizializzazione dell'array, ma poi specifichi i nomi delle variabili e i numeri errati che ti vengono stampati.
    avete entrambi ragione. Chiedo venia,la mia era partita come domanda generale e mi è sfuggita di mano.
    ecco il codice:
    
    #include <stdlib.h>
    #include <stdio.h>
    
    
    int main()
    {
    	int vettore[9];
    	int z = 2,maggiore=0,minore=0,posizione=0,posizione2=0,a=0;
    	
    	printf("inserire il primo numero\n");
    	scanf_s("%d",vettore);
    	maggiore = vettore[a];
    	minore = vettore[a];
    	for (int a=1; a < 8; a++) {
    		printf("inserire il %d numero\n", z);
    		scanf_s("%d", vettore);
    		if (maggiore < vettore[a]) {
    			maggiore = vettore[a];
    		
    			posizione = z;
    		}
    		if (vettore[a] < minore) {
    			minore = vettore[a];
    			
    			posizione2 = z;
    		}
    		z++;
    	}
    	printf("il maggiore e':%d \n il minore e':%d \n la posizione del maggiore e':%d \nla posizione del minore e':%d \n",maggiore,minore,posizione,posizione2);
    
    	system("pause");
        return 0;
    }
    
    
    
    
  • Re: Vettori e interi

    Guarda che l'input deve essere

    scanf_s("%d", &vettore[a]);
  • Re: Vettori e interi

    oregon ha scritto:


    Guarda che l'input deve essere

    scanf_s("%d", &vettore[a]);
    che errore del piffero. Hai ragionissima, mi confondo sempre con le stringhe ultimamente.. Dove ho la testa
    Grazie mille...
Devi accedere o registrarti per scrivere nel forum
6 risposte