Problema con un codice in C

di il
7 risposte

Problema con un codice in C

Buongiorno a tutti, sono un neo iscritto al forum e novellino della progammazione con un quesito da porvi gentilmente:
come esercizio da risolvere mi è stato indicato di stampare il prodotto dei reali positivi in input, saltando i negativi e gli zeri. L'input consiste di n numeri reali, dove n è dato in input come primo elemento.


#include <stdio.h>

int n;
int contatore;
float valore;
//float prodotto;

int main(void){
scanf("%d", &n);

while (contatore<n){
scanf("%f", &valore);
contatore=contatore+1;
if (valore>0.0){
printf("%f\n", valore);
}
else {

}
//inserire operazione prodotto
}
}


Il codice è ovviamente incompleto in quanto non capisco come impostare un prodotto di n elementi che varia a seconda dell'input.
Gradirei tantissimo un vostro aiuto e vi ringrazio in anticipo per l'attenzione!
Allegati:
22597_1842e10f7e52d60b1e16f9fee6dfe20c.c
22597_1842e10f7e52d60b1e16f9fee6dfe20c.c

7 Risposte

  • Re: Problema con un codice in C

    Intanto devi assegnare al contatore un valore di partenza.

    Per il resto non ho capito che problema specifico hai ...
  • Re: Problema con un codice in C

    Se ho capito vuoi stampare il prodotto di n numeri reali >0

    Inizializza il contatore ad 1.0 perché 1 così siamo sicuri di evitare lo 0, dichiararlo float, così come la n! Prima del while chiedi all'utente da quale numero incominciare a fare il prodotto!
    
    float prod=1.0,conta=1.0, n;
    
    printf("Inserire punto partenza prod: ");
    scanf(" %f", &n);
    
    while(conta<=n){
    prod*=n;
    n--;
    }
    printf("\nIl prodotto vale: %.2f ",prod);
    
    
  • Re: Problema con un codice in C

    Prima di tutto vi ringrazio per i vostri interventi! Per essere più precisi, il codice deve sì stampare il prodotto di n numeri reali >0, ma partendo da un input che contiene sia numeri positivi che negativi. Per esempio:

    INPUT
    5 (che corrisponderebbe a n)
    3.0
    9.7
    -2.0
    0.0
    10.1

    OUTPUT
    293.910004

    Essendo -2.0 e 0.0 valori non accettati, il prodotto è 3.0*9.7*10.1
  • Re: Problema con un codice in C

    Quindi qualcosa come questo
    
    int main(void) 
    {
    	float prod = 1.0, val;
    	int conta = 0, n;
    
    	printf("Inserire punto partenza prod: ");
    	scanf("%d", &n);
    
    	while (conta < n) 
    	{
    		scanf("%f", &val);
    
    		if(val>0.0)
    			prod *= val;
    
    		conta++;
    	}
    
    	printf("\nIl prodotto vale: %.2f ", prod);
    	return 0;
    }
    
    Mi sembra ci potessi arrivare facilmente ...


    @Amedeo ... il tuo codice mi sembra molto lontano ... controlla gli errori che hai fatto ...
  • Re: Problema con un codice in C

    @oregon Si, esattamente. Grazie mille! Lo so che è un codice banale, ma da poco mi sono cimentato a scrivere in C quindi ancora non mi sono note certe funzioni...
    Il problema principale per me era concepire come potessi fare un prodotto senza esplicitare il numero dei valori da moltiplicare, per esempio se avessi avuto un determinato numero n=5, avrei scritto nel codice il prodotto come "prodotto=v1*v2*v3*v4*v5".
    In ogni caso mi è tutto più chiaro, grazie e buonasera!
  • Re: Problema con un codice in C

    @oregon Il mio codice, in realtà é un estratto, effettua il prodotto di n numeri reali >0 del tipo :

    Se metti in input esempio: 3.6

    Prod=3.6*2.6*1.6 restituiva qst prodotto

    Avevo capito che a lui servisse qlks del genere! Ma non mi sembra sbagliato !! Cmq ammetto di aver capito male ...
  • Re: Problema con un codice in C

    Lui aveva chiesto
    L'input consiste di n numeri reali
    ecco perché ti dicevo che il tuo codice era lontano ...
Devi accedere o registrarti per scrivere nel forum
7 risposte