działania
Jacek: Czy ktoś zna się może na informatyce na poziomie gimnazjum/liceum?
Jak napisać w C program, który bierze dwie liczby, sprawdza która
jest większa i sumuje wszystkie liczby od większej do mniejszej, np.
a=18, b=16, czyli suma=18+17+16
Byłbym niezmiernie wdzięczny za pomoc
15 wrz 15:43
Adamm: czy program ma prosić użytkownika o liczby czy te liczby są zdefiniowane w programie
15 wrz 16:07
Jacek: Ma prosić o podanie liczby a i liczby b, później je ze sobą porównywać i podawać sumę liczb od
większej do mniejszej włącznie. Bardzo proszę, bo zupełnie nie ogarniam, a mam jeszcze kilka
programów do napisania i chciałbym mieć wzór.
15 wrz 16:09
Jacek: Zrobiłem ale od mniejszej do większej, a ma być od większej do mniejszej sumowanie (choć wynik
ten sam)
#include<stdio.h>
int main()
{
int a,b,j, suma=0;
printf("Podaj pierwsza liczbe ");
scanf("%d", &a);
printf("Podaj druga liczbe ");
scanf("%d", &b);
if (a>b)
{
for(j=b;j<=a;j++)
{
suma=suma+j;
}
}
else if (a<b)
{
for(j=a;j<=b;j++)
{
suma=suma+j;
}
}
printf("Suma liczb to to %d ",suma);
system("pause");
return 0;
}
15 wrz 16:15
Adamm: no więc, potrzebujesz biblioteki <stdio.h>, w programie funkcją scanf() wczytujesz liczby
a, b (załóżmy) tworzysz zmienną c=a+b, if(){}else{} układasz to w odpowiedniej kolejności
czyli a+b=c, oczywiście printf() wypisujesz to do wyjścia
15 wrz 16:15
Adamm: czemu sumujesz jedna po jednej
15 wrz 16:16
Adamm: ok nieważne
15 wrz 16:17
Adamm: zamień miejscami a i b w for() a zamiast j++ wpisz j−−
15 wrz 16:18
Jacek: Tak mieliśmy w przykładzie na lekcji, wiem, że dłużej schodzi, ale na razie uczymy się prostszą
metodą. Tylko nie wiem jak to zamienić, żeby dodawał od większej, bo mi wychodzą bzdury.
15 wrz 16:18
Jacek: Dokładnie tak zrobiłem i wychodzą błędne wyniki.
15 wrz 16:19
Adamm: jeszcze zmień nierówność
15 wrz 16:19
Adamm: w for(), nie w if()
15 wrz 16:20
Jacek: Teraz działa!
#include<stdio.h>
int main()
{
int a,b,j, suma=0;
printf("Podaj pierwsza liczbe ");
scanf("%d", &a);
printf("Podaj druga liczbe ");
scanf("%d", &b);
if (a>b)
{
for(j=a;j>=b;j−−)
{
suma=suma+j;
}
}
else if (a<b)
{
for(j=b;j>=a;j−−)
{
suma=suma+j;
}
}
printf("Suma liczb to to %d ",suma);
system("pause");
return 0;
}
Dziękuję za pomoc
15 wrz 16:21
Adamm:
15 wrz 16:21