Wczytywanie kolejnych wartosci az do przekroczenia ich sumy.

0

Zadanie: Wczytywać wartości podane przez użytkownika, ąż suma przekroczy 100.

Oto co udało mi się napisać:

// Wczytywać wartości podane przez użytkownika, ąż suma przekroczy 100.
int main()
{
    int a,b,c,d;
    printf ("Podaj a:");
    scanf ("%d", &a);

    printf ("Podaj b:");
    scanf ("%d", &b);


    for (a+b>100;;)
    {
    printf("Suma a i b jest wieksza od 100. Koniec \n");
    break;
                }
    for (a+b<100;;){
    printf ("Suma a i b jest mniejsza od 100. Podaj kolejną liczbę c:\n");
    scanf ("%d", &c);
    break;
                }

    for (a+b+c>100;;){
    printf("Suma a,b i c jest wieksza od 100. Koniec/\n ");
    break;
    }

    for (a+b+c<100;;){
    printf ("Suma a,b i c jest mniejsza od 100. Podaj liczbe d: \n");
    scanf ("%d", &d);
    break;
    }

    for (a+b+c+d>100;;){
    printf (" Suma jest wieksza od 100! koNIEC");
    break;
    }
    return 0;
}
1

stwórz sobie jakąś zmienną która będzie reprezentować sumę wszystkich liczb. Przed pętla ją wyzeruj. W pętli wczytuj dane użytkownika do jakiejś zmiennej później zwiększ zmienną reprezentującą sumę wszystkich liczb o tą zmienną którą podał użytkownik i porównaj ją. Jeśli jest większe od 100 daj w pętli break i tyle. Nie wiem w czym problem.

0

Może być takie coś:

int main()
{
    int a;
    int b;
    int s=0 ; // Suma


    printf ("Podaj a: \n");
    scanf ("%d", &a);

    printf ("Podaj b: \n");
    scanf ("%d", &b);

    s=a+b;

    while ( s<100 ) {
    int c;
    printf ("Suma a i b nie jest wieksza od 100.Podaj kolejna liczbe c: \n");
    scanf ("%d", &c);

    s=a+b+c;
    }

return 0;
}

 
1
s=a+b+c;

Raczej:

s += c;

Myśl logicznie...

0

Staram się :) Bardzo dziękuje za pomoc.

#include <stdio.h>
#include <stdlib.h>


// Wczytywać wartości podane przez użytkownika, ąż suma przekroczy 100.
int main()
{
    int a;
    int b;
    int s=0 ; // Suma


    printf ("Podaj a: \n");
    scanf ("%d", &a);

    printf ("Podaj b: \n");
    scanf ("%d", &b);

    s=a+b;

    while ( s<100 ) {
    int c;
    printf ("Suma a i b nie jest wieksza od 100.Podaj kolejna liczbe c: \n");
    scanf ("%d", &c);

    s=s+c;
    }

    if ( s>100) printf ("Suma jest wieksza od 100.");

return 0;
}

Przeanalizowałem post jednego użytkownika i:

int suma=0;
int licznik=0;

do
{
printf ("Podaj liczbe:");
scanf ("%d", &licznik);

suma=suma+licznik
} while ( suma<100 );
if ( suma>100) printf ("Suma większa od 100");

return 0;
 
0

Ważne, że zrozumiałem. Ostatni warunek jest tylko dla informacji użytkownika.

int suma=0;
int licznik;
 
do
{
printf ("Podaj liczbe:");
scanf ("%d", &licznik);
 
suma=suma+licznik;
} while ( suma<=100 );
if ( suma>100) printf ("Suma większa od 100");
 
return 0;
0

@Visher
Ten kod to moje dzieło.
Co do ostatniego warunku to jest dobry, bo w zadaniu mowa o przekroczeniu a nie zrównoważeniu. A co do nazwy zmiennej to masz racje, kod pisałem na szybko i nie chciało mi się wymyślać odpowiedniejszej nazwy. I tak było lepsza niż wyjściowe a,b itd

1 użytkowników online, w tym zalogowanych: 0, gości: 1