Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: [C]Array float

  1. #1

    [C]Array float

    Ciao a tutti le array float si possono usare?

    perche se dichiaro un array float xcode mi da un errore dicendomi che non è int l'array?

    eppure ho visto in un source qui nel forum che si puo usare un array float...

    esempio:

    codice:
    #include <stdio.h>
    
    
    int main () {
        int quante = 50;
    	float numeri[quante];
    	float operazioni = 0;
    	int contatore = 1;
    	int zero;
    	float risposta;
    	float media;
    	
    	do {
    		printf("%d numero o 0 per calcolare: \n", contatore);
    		scanf("%f",&numeri[operazioni]);
    		
    		contatore++;
    	}while (numeri[operazioni++] != 0);
    	
    	risposta=numeri[0];
    	for (zero = 1; zero < operazioni; zero++) {
    		risposta += numeri[zero];
    	}
    
    	media = (float) risposta / (contatore - 2);
    	printf("%2f", media);
        return 0;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    L'errore ce l'hai su "operazioni" non sull'array... gli indici degli array devono essere necessariamente interi, ma "operazioni" è di tipo float.
    every day above ground is a good one

  3. #3
    Originariamente inviato da YuYevon
    L'errore ce l'hai su "operazioni" non sull'array... gli indici degli array devono essere necessariamente interi, ma "operazioni" è di tipo float.
    si avevo gia provato guarda:
    codice:
    #include <stdio.h>
    
    
    int main () {
       
    	int numeri[50];
    	float operazioni = 0;
    	int contatore = 1;
    	int zero;
    	float risposta;
    	float media;
    	
    	do {
    		printf("%d numero o 0 per calcolare: \n", contatore);
    		scanf("%f",&numeri[operazioni]);
    		
    		contatore++;
    	}while (numeri[operazioni++] != 0);
    	
    	risposta=numeri[0];
    	for (zero = 1; zero < operazioni; zero++) {
    		risposta += numeri[zero];
    	}
    
    	media = (float) risposta / (contatore - 2);
    	printf("%2f", media);
        return 0;
    }
    però dice che l'array deve essere di tipo int, e difatti lo è...

    non capisco perche fa cosi il programma...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Leggi bene quello che ti ho scritto sopra. Cosa stai utilizzando come *indice* dell'array?
    every day above ground is a good one

  5. #5
    sto usando operazioni come contenuto menter come indice un numero int, per quello credo sia giusto...

    o sbaglio?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Rifacendoci al primo codice che hai postato, stai utilizzando "operazioni" come indice, ma "operazioni" è di tipo float. Gli indici degli array devono essere interi, questo a prescindere dal tipo dell'aray stesso che può essere senza problemi int, float o quello che vuoi.
    every day above ground is a good one

  7. #7
    Utente di HTML.it L'avatar di Mashin
    Registrato dal
    Jul 2010
    Messaggi
    187
    codice:
    	
    	do {
    		printf("%d numero o 0 per calcolare: \n", contatore);
    		scanf("%f",&numeri[operazioni]);
    		
    		contatore++;
    	}while (numeri[operazioni++] != 0);
    In questo pezzo usi operazioni (che e' variabile di tipo float) come indice del vettore.

    Quest non va bene. L'indice del vettore deve essere sempre di tipo int.

  8. #8
    quindi se voglio che per esempio numero[0] = 123.23 non si puo fare?


    il discorso è questo, io ho bisogno che il programma mi fa inserire sia numeri interi che con virgola.
    Però non capisco come si puo fare, se operazioni non puo essere un float non puo contenere numeri con virgola...

    devo usare l array come float e invece operazioni come int?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Stai confondendo il contenuto dell'array con l'indice che serve per scorrerlo, e sono due cose distinte e separate. Il tipo dell'array (cioè il tipo degli elementi dell'array, quindi del suo contenuto) può essere quello che decidi tu, ma il tipo delle variabili che utilizzi come indici deve essere *necessariamente* intero.

    devo usare l array come float e invece operazioni come int?
    Sì.
    every day above ground is a good one

  10. #10
    Originariamente inviato da YuYevon
    Stai confondendo il contenuto dell'array con l'indice che serve per scorrerlo, e sono due cose distinte e separate. Il tipo dell'array (cioè il tipo degli elementi dell'array, quindi del suo contenuto) può essere quello che decidi tu, ma il tipo delle variabili che utilizzi come indici deve essere *necessariamente* intero.



    Sì.
    Grazie mille ora funziona perfettamente ed ho anche capito come usare le array float

    codice:
    #include <stdio.h>
    
    
    int main () {
       
    	float numeri[50];
    	int operazioni = 0;
    	int contatore = 1;
    	int zero;
    	float risposta;
    	float media;
    	
    	do {
    		printf("%d numero o 0 per calcolare: \n", contatore);
    		scanf("%f",&numeri[operazioni]);
    		
    		contatore++;
    	}while (numeri[operazioni++] != 0);
    	
    	risposta=numeri[0];
    	for (zero = 1; zero < operazioni; zero++) {
    		risposta += numeri[zero];
    	}
    
    	media = (float) risposta / (contatore - 2);
    	printf("%.2f", media);
        return 0;
    }

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.