Somma supera valore costante

di Anonimizzato26710 il
18 risposte
Buongiorno mi potreste dare una mano con questo problema per favore

Scrivere un programma che legge una serie di numeri interi positivi arrestandosi quando la somma dei numeri immessi supera un valore costante letto come primo numero della sequenza.


[#include<conio.h>
#include<stdio.h>
#include<windows.h>
main()
{
int n,num,r,somma=0;
printf("Inserire un numero costante\n");
scanf("%d",& num);
while(r==0&&r!=0) { printf("Inserire un numero\n");
scanf("%d",&n);
r=n%2;
somma=somma+n;}
if (somma>num)
printf("Fine programma\n");
printf("La somma tra i numeri pari e'%d\n",somma);
getch();
}]

18 Risposte

  • While(r==0&&r!=0)

    Come fa un numero ad essere uguale e contemporaneamente diverso da zero??
  • oregon ha scritto:


    While(r==0&&r!=0)

    Come fa un numero ad essere uguale e contemporaneamente diverso da zeri??
    E' un errore di distrazione scusami
  • Dopo che correggi il codice lo riproponi usando i tag code e spiegando i problemi
  • oregon ha scritto:


    Dopo che correggi il codice lo riproponi usando i tag code e spiegando i problemi
    Non so come si usano i tag code, scusami
  • Usa il tasto editor completo e poi il tasto </>

    Non è difficile
  • oregon ha scritto:


    Dopo che correggi il codice lo riproponi usando i tag code e spiegando i problemi
    [#include<conio.h>
    #include<stdio.h>
    #include<windows.h>
    main()
    {
    int n,num,r,somma=0;
    printf("Inserire un numero costante\n");
    scanf("%d",& num);
    do { printf("Inserire un numero\n");
    scanf("%d",&n);
    r=n%2;
    somma=somma+n;
    if(somma>num)
    printf("Errore\n");}
    while(somma>num);
    printf("La somma tra i numeri pari e'%d\n",somma);
    getch();
    }][/code]

    purtroppo però mi fa inserire solo un numero e non la sequenza di numeri.
  • I tag vanno all'inizio del codice ... devi scrivere

    [ code ]

    e alla fine

    [ /code ]

    senza gli spazi tra le parentesi quadre
  • Per il problema in

    while (somma>num)

    la condizione non mi sembra corretta. Dici di ripetere solo se somma è maggiore di num e quindi non ripete.

    E poi hai calcolato la r ... ma a cosa ti serve? Solo perché qualcuno ti ha detto di scrivere quella riga ma non ti sei chiesta a cosa serva

    E quella if?

    Ragiona un po' di più ...
  • oregon ha scritto:


    Per il problema in

    while (somma>num)

    la condizione non mi sembra corretta. Dici di ripetere solo se somma è maggiore di num e quindi non ripete.

    E poi hai calcolato la r ... ma a cosa ti serve? Solo perché qualcuno ti ha detto di scrivere quella riga ma non ti sei chiesta a cosa serva

    E quella if?

    Ragiona un po' di più ...
    Allora cambio la condizione del while e metto che la somma<num.
    La r mi serve per far capire all'utente che deve inserire solo numeri pari.
    La if è il controllo sul numero inserito dall'utente
  • Se non usi la r nel tuo codice l'utente inserisce quello che vuole
  • oregon ha scritto:


    Se non usi la r nel tuo codice l'utente inserisce quello che vuole
    Scusami ho sbagliato a leggere la consegna
  • Quindi ora sono arrivato a questo punto:
    #include<conio.h>
    #include<stdio.h>
    #include<windows.h>
    main()
    {
    int n,num,r,somma=0;
    printf("Inserire un numero costante\n");
    scanf("%d",& num);
    do {	printf("Inserire un numero\n");
    		scanf("%d",&n);
    		somma=somma+n;
    		if(somma>num)
    			printf("Errore\n");}
    while(somma<num);
    printf("La somma tra i numeri e'%d\n",somma);
    getch();
    }
    però non riesco ad arrestarmi quando la somma dei numeri immessi supera un valore costante letto come primo numero
  • Per favore sono in difficoltà
  • Ho provato il codice e mi pare proprio che funzioni.

    Ecco l'output:
    
    Inserire un numero costante
    100
    Inserire un numero
    60
    Inserire un numero
    50
    Errore
    La somma tra i numeri e'110
    
    Dove sarebbe il problema??
Devi accedere o registrarti per scrivere nel forum
18 risposte