Quanti valori sono maggiori, minori o nulli?

di il
12 risposte

Quanti valori sono maggiori, minori o nulli?

Buongiorno mi potreste dare una mano con questo problema, non riesco a capire dove sbaglio.

Scrivere un programma in c che legge da tastiera una sequenza di numeri interi terminanti con un numero negativo e al termine stampa a video il numero dei numeri letti che sono maggiori di zero, di quelli che sono minori di zero e di quelli nulli.

Il codice che ho scritto io è il seguente:
#include<stdio.h>
#include<conio.h>
#include<windows.h>
main()
{
	int n,c,neg,mag,min,nullo,conta1=0,conta2=0,conta3=0;
	while(n<0){
		printf("Inserire un numero positivo\n");
		scanf("%d",&n);
		if(n<0&&n<min)
			min=n;
			conta1++;
		if(n>0&&n>mag)
			mag=n;
			conta2++;
		if (n=0)
		conta3++;}
	printf("\nI numeri minori sono:%d",conta1);
	printf("\nI numeri maggiori sono:%d",conta2);		
	printf("\nI numeri nulli sono:%d",conta3);
	getch();
}

12 Risposte

  • Re: Quanti valori sono maggiori, minori o nulli?

    Cosa vuol dire questo

    while(n<0)

    ?

    Hai compreso come funziona il while?
  • Re: Quanti valori sono maggiori, minori o nulli?

    oregon ha scritto:


    Cosa vuol dire questo

    while(n<0)

    ?

    Hai compreso come funziona il while?
    Significa che quando ho un numero inferiore a 0 non entro nel ciclo no?
  • Re: Quanti valori sono maggiori, minori o nulli?

    La comparazione si fa con ==, non =

    Se gli if prevedono più di una istruzione servono le parentesi graffe, non è Python

    La condizione sul min è comunque sbagliata
  • Re: Quanti valori sono maggiori, minori o nulli?

    Weierstrass ha scritto:


    La comparazione si fa con ==, non =

    Se gli if prevedono più di una istruzione servono le parentesi graffe, non è Python

    La condizione sul min è comunque sbagliata
    #include<stdio.h>
    #include<conio.h>
    #include<windows.h>
    main()
    {
    	int n,c,neg,mag,min,nullo,conta1=0,conta2=0,conta3=0;
    	while(n<0){
    		printf("Inserire un numero positivo\n");
    		scanf("%d",&n);
    		if((n<0)&&(n<min))
    			min=n;
    			conta1++;
    		if((n>0)&&(n>mag))
    			mag=n;
    			conta2++;
    		if (n==0)
    		conta3++;}
    	printf("\nI numeri minori sono:%d",conta1);
    	printf("\nI numeri maggiori sono:%d",conta2);		
    	printf("\nI numeri nulli sono:%d",conta3);
    	getch();
    }
    Comunque posso evitare di metterle, l'ho sempre fatto e ha sempre funzionato
  • Re: Quanti valori sono maggiori, minori o nulli?

    Fenice ha scritto:


    Weierstrass ha scritto:


    La comparazione si fa con ==, non =

    Se gli if prevedono più di una istruzione servono le parentesi graffe, non è Python

    La condizione sul min è comunque sbagliata
    #include<stdio.h>
    #include<conio.h>
    #include<windows.h>
    main()
    {
    	int n,c,neg,mag,min,nullo,conta1=0,conta2=0,conta3=0;
    	while(n<0){
    		printf("Inserire un numero positivo\n");
    		scanf("%d",&n);
    		if((n<0)&&(n<min))
    			min=n;
    			conta1++;
    		if((n>0)&&(n>mag))
    			mag=n;
    			conta2++;
    		if (n==0)
    		conta3++;}
    	printf("\nI numeri minori sono:%d",conta1);
    	printf("\nI numeri maggiori sono:%d",conta2);		
    	printf("\nI numeri nulli sono:%d",conta3);
    	getch();
    }
    Comunque posso evitare di metterle, l'ho sempre fatto e ha sempre funzionato
    La programmazione è matematica applicata, non è alchimia. conta1++ viene eseguito sempre. Il minimo non si calcola in quel modo, comunque l'esercizio ti chiede un'altra cosa
  • Re: Quanti valori sono maggiori, minori o nulli?

    Weierstrass ha scritto:


    Fenice ha scritto:


    Weierstrass ha scritto:


    La comparazione si fa con ==, non =

    Se gli if prevedono più di una istruzione servono le parentesi graffe, non è Python

    La condizione sul min è comunque sbagliata
    #include<stdio.h>
    #include<conio.h>
    #include<windows.h>
    main()
    {
    	int n,c,neg,mag,min,nullo,conta1=0,conta2=0,conta3=0;
    	while(n<0){
    		printf("Inserire un numero positivo\n");
    		scanf("%d",&n);
    		if((n<0)&&(n<min))
    			min=n;
    			conta1++;
    		if((n>0)&&(n>mag))
    			mag=n;
    			conta2++;
    		if (n==0)
    		conta3++;}
    	printf("\nI numeri minori sono:%d",conta1);
    	printf("\nI numeri maggiori sono:%d",conta2);		
    	printf("\nI numeri nulli sono:%d",conta3);
    	getch();
    }
    Comunque posso evitare di metterle, l'ho sempre fatto e ha sempre funzionato
    La programmazione è matematica applicata, non è alchimia. conta1++ viene eseguito sempre. Il minimo non si calcola in quel modo, comunque l'esercizio ti chiede un'altra cosa
    Ripeto sono alle PRIME ARMI con la programmazione, appunto per questo sto semplicemente chiedendo se mi date una mano per capire dove ho sbagliato e imparare.
  • Re: Quanti valori sono maggiori, minori o nulli?

    Comunque posso evitare di metterle, l'ho sempre fatto e ha sempre funzionato
    Visto che sei alle prime armi, le parentesi mettile SEMPRE. Poi, quando avrai più dimestichezza, comincerai a toglierle.
  • Re: Quanti valori sono maggiori, minori o nulli?

    Fenice ha scritto:


    Buongiorno mi potreste dare una mano con questo problema, non riesco a capire dove sbaglio.

    Scrivere un programma in c che legge da tastiera una sequenza di numeri interi terminanti con un numero negativo e al termine stampa a video il numero dei numeri letti che sono maggiori di zero, di quelli che sono minori di zero e di quelli nulli
    Per come lo hai scritto, il problema non ha senso: se la sequenza di interi finisce quando viene inserito un numero negativo, perché poi ti dovrebbe chiedere di contare i numeri letti inferiori a zero (il valore dei quali sará sempre 1)??!

    Cmq compari delle variabili (n, min e mag) senza prima averne dichiarato il valore (ad esempio in while (n>0), che addirittura precede scanf("%d",&n); ).

    Molte variabili (come mag e min) e istruzioni sono inutili per risolvere il problema (se sono riuscito a interpretarlo correttamente): mi sembra che tu stia cercando di riutilizzare un codice per trovare i numeri maggiore e minore di una serie.
  • Re: Quanti valori sono maggiori, minori o nulli?

    Andrea Quaglia ha scritto:


    Comunque posso evitare di metterle, l'ho sempre fatto e ha sempre funzionato
    Visto che sei alle prime armi, le parentesi mettile SEMPRE. Poi, quando avrai più dimestichezza, comincerai a toglierle.
    Okay va bene grazie
  • Re: Quanti valori sono maggiori, minori o nulli?

    lucifugo ha scritto:


    Fenice ha scritto:


    Buongiorno mi potreste dare una mano con questo problema, non riesco a capire dove sbaglio.

    Scrivere un programma in c che legge da tastiera una sequenza di numeri interi terminanti con un numero negativo e al termine stampa a video il numero dei numeri letti che sono maggiori di zero, di quelli che sono minori di zero e di quelli nulli
    Per come lo hai scritto, il problema non ha senso: se la sequenza di interi finisce quando viene inserito un numero negativo, perché poi ti dovrebbe chiedere di contare i numeri letti inferiori a zero (il valore dei quali sará sempre 1)??!

    Cmq compari delle variabili (n, min e mag) senza prima averne dichiarato il valore (ad esempio in while (n>0), che addirittura precede scanf("%d",&n); ).

    Molte variabili (come mag e min) e istruzioni sono inutili per risolvere il problema (se sono riuscito a interpretarlo correttamente): mi sembra che tu stia cercando di riutilizzare un codice per trovare i numeri maggiore e minore di una serie.

    Purtroppo non l'ho scritto io il problema, e lui mi chiede questo, lo penso anche io che non ha molto senso, però non poso farci niente se non che risolverlo
  • Re: Quanti valori sono maggiori, minori o nulli?

    Questo codice risponde "alla lettera" alla traccia:
    
    /* Scrivere un programma in c che legge da tastiera una sequenza di numeri interi 
     * terminanti con un numero negativo e al termine stampa a video il numero dei numeri
     * letti che sono maggiori di zero, di quelli che sono minori di zero e di quelli 
     * nulli.
     */
    
    #include<stdio.h> 
    #include<conio.h>
    
    int main(void)
    {
    	int n, conta_pos = 0, conta_nul = 0;
    	
    	printf("Inserire una serie di interi positivi, (inserire un intero negativo per terminare:\n");
    	
    	do
    	{
    		scanf("%d", &n);
    		if (n > 0)
    		{
    			++conta_pos;
    		}
    		if (n == 0)
    		{
    			++conta_nul;
    		}
    	} while (n >= 0);
    	
    	printf("\nI numeri negativi sono: 1"); 
    	printf("\nI numeri positivi sono: %d", conta_pos); 
    	printf("\nI numeri nulli sono: %d", conta_nul);
    	
    	getch();
    }
    Forse vorrai cambiarlo un po' per inserire la conta dei numeri negativi (io non l'ho messa perché non era necessaria vista la traccia e per non darti la pappa pronta).
  • Re: Quanti valori sono maggiori, minori o nulli?

    Risolto grazie mille

    Ecco il programma:
    #include<stdio.h>
    #include<conio.h>
    #include<windows.h>
    main()
    {
    	int n,conta_mag=0,conta_nul=0,conta_min=0;
    	printf("Inserire una serie di numeri positivi, (inserire un numero negativo per terminare:\n");
    	do{	scanf("%d",&n);
    		if(n>0)
    			{conta_mag++;}
    		if (n==0)
    			{conta_nul++;}}
    	while(n>=0);
    	printf("\nI numeri minori di zero sono: 1"); 
    	printf("\nI numeri maggiori di zero sono: %d", conta_mag); 
    	printf("\nI numeri nulli sono: %d", conta_nul);
    	getch();
    }
Devi accedere o registrarti per scrivere nel forum
12 risposte