jak napisać program dodający pierwszą trzecią piątą itd. liczbę i gdy suma przekroczy 20 program kończy dodawanie?
0
1
Musisz dodawać do pewnej zmiennej co drugą liczbę i jak suma przekroczy 20 to przerwać.
0
#include<stdio.h>
int main()
{
double a, r , suma, iloczyn, i;
suma=0;
iloczyn=1;
i=1;
do
{
printf("podaj iczbe z zakresu 0-1\n");
scanf("%lf", &a);
if((a>=0) && (a<=1))
{
r=i%2;
if(r=0)
{
iloczyn=iloczyn*a;
}
if(r>0)
{
suma=suma+a;
}
i=i+1;
}
else
{
printf("liczba jest z poza zakresu\n");
}
}while(suma<5) ;
printf("suma przekroczla 20 wynik zostal zapisany do piku\n");
printf("iloczyn wynosi %lf", iloczyn);
return(0);
}
Dlaczego wywala w tam gdzie jest r=i%2
0
Bo reszta z dzielenia nie jest typu double.
Porównanie powinno wyglądać tak:
if(r==0)
Z treści zadania nie wynika, że masz dodawać tylko liczby dodatnie.
0
Double to typ zmiennoprzecinkowy, może tutaj jest problem. Zmień na całkowitoliczbowy (np. int) i wtedy spróbuj pokombinować ze swoim programem, bo chyba nie działa tak, jakbyś sobie tego życzył.
A że tak spytam, chciałeś osiągnąć coś takiego?
#include <stdio.h>
int main(void)
{
int suma, i, liczba;
i = 0;
suma = 0;
while(suma < 20 && scanf("%d", &liczba) == 1)
{
if(i%2 == 0)
suma += liczba;
i++;
}
printf("%d", suma);
return 0;
}
Powyższy program pozwala wpisywać użytkownikowi liczby i dodaje 1, 3, 5, 7... liczbę, aż do osiągnięcia sumy większej od 20.
0
To nie byłoby prościej w pętli inkrementować i o 2? Wtedy nie musiałby sie grzebać z r=i%2 itp.