Zax_Na_Max [ Bo Emeryt Znał Karate ]
Dev C++ Zadanie... Problem
Napisz program, który wypisuje największą z liczb pobranych z klawiatury wwraz z informacją ile razy ta liczba wystąpiła w ciągu. Informacja o ilości liczb jest wartością podawaną na początku działania algorytmu.
Pomożecie? Dev C++ ... Chodzi raczej o gotowy program. Dzięki .
Zax_Na_Max [ Bo Emeryt Znał Karate ]
Panowie... ;(
umek [ Szczęśliwy ]
dev c++ do kompilator... C++ to język
max=0;
a- ilość liczb
for(i=1,i==a,i++)
‹
cin>>b;
if(b>max)
max=b;
ilosc=1;
if(b==max) ilosc+=1;
›
Scatterhead [ łapaj dzień ]
masz dwie zmienne
jedna na liczbe, druga na licznik
w petli wczytujesz liczby i sprawdzasz jezeli jest wieksza niz ta zapisana na zmiennej to ja podmieniasz i licznik ustawiasz na jeden
jezeli jest taka sama dodajesz jeden do licznika
jezeli jest mniejsza nic nie robisz
jeżeli jesteś na informatyce i nie potrafisz zrobić takiego czegoś to nie ma co tam chodzić
umek [ Szczęśliwy ]
Scatterhead- a co ja napisałem?:P
Pewnie jest w LO i musi toto robić
Scatterhead [ łapaj dzień ]
umek -> zacząłem pisać zanim była twoja odpowiedź
donzoolo [ Senator ]
nie to zebym byl specem czy cos, ale w forze powinno byc = a nie ==, chyba
umek [ Szczęśliwy ]
Dobra, sorry
pełen program
#include <iostream>
using namespace std;
int main()
int max max=0;
cin>>int a;
for(int i=1,i==a,i++)
cin>>int b;
if(b>max)
max=b;
ilosc=1;
if(b==max) ilosc+=1;
cout<<max, ilosc;
Też nie jestem specem i nie wiem jak z forem, ale chyba tak
donzoolo [ Senator ]
==, przynajmniej w javie sluzy do porownywania zmiennych typu boolean, czyli true, false. W tym przypadku program przestanie wchodzic do petli jezeli wartosci liczbowe i oraz a beda takie same, a wartosci liczbowe porownujemy =, !=, >, <, >=, <=, <>
Madril [ I Want To Believe ]
Obaj nie macie racji. W pętli for w kodzie umek'a powinno być i <= a.
Dla i == a pętla wykonałaby się tylko raz i tylko wtedy, gdy a byłoby równe 1.
Dla = nie jestem pewien, ale albo pętla by działała w nieskończoność, ponieważ = to jest operator przypisania i zwracałby wartość true dla każdego udanego przypisania, a w tym przypadku by tak było, albo kompilator wywaliłby błąd, że nie może być = w tym miejscu.
donzoolo --> W C++ się porównuje liczby właśnie za pomocą ==, a nie =. Poza tym nie ma takiego operatora: <>.
Moshimo [ FullMetal ]
Ten program wydaje sie ok, jednak bedzie zle dzialal, gdy podamy same ujemne liczby.
Mala zmiana:
#include <iostream>
using namespace std;
int main()‹
int max,a,i,b,ilosc=0; //bez tego ilosc=0 tez moglyby pozniej krzaczki wystapic
cin>> a;
for(int i=1,i==a,i++)
‹
cin>>int b;
if (i==1) max=b;
if(b>max) ‹
max=b;
ilosc=1;
›
if(b==max) ilosc+=1;
›
cout<<max, ilosc;
›
Madril [ I Want To Believe ]
Czy któryś z Was kiedykolwiek coś pisał w C++? :)
Żaden z programów tu napisanych nie działa poprawnie, mylicie operatory porównania, budowę pętli for.
#include <iostream>
using namespace std;
int main()
int max = 0,a,i,b,ilosc=0;
cin>> a;
for(i=1;i<=a;i++)
cin >> b;
if (i==1) max=b;
if(b>max)
max=b;
ilosc=1;
if(b==max) ilosc+=1;
cout<< ilosc;
system ("PAUSE");
Chyba do tego będzie trzeba zamienić nawiasy zakresów, bo silnik GOLa je na inne zamienia.
umek [ Szczęśliwy ]
dobra, ośmieszyliśmy się... zapomniałem z tym forem, skojarzyło mi się z pascalem, w którym ostatnio piszę (for i:=1 to a do...)
Moshimo [ FullMetal ]
Taaa mialem to zmienic i tez zapomnialem ;].
DarkStar [ magister inzynier ]
Madril, skladnia jest wspaniala, tylko program do dupy:)
Madril [ I Want To Believe ]
DarkStar --> Ja tylko poprawiłem to, co ktoś napisał wyżej, nie pisałem swojego. :)
Moshimo [ FullMetal ]
A jak powinna wygladac "dobra" wersja?
Madril [ I Want To Believe ]
Ja bym na pewno pobierał jedną liczbę przed pętlą, żeby pozbyć się z niej warunku: if (i==1) max=b;
Poza tym można przerobić na while z warunkiem stopu na podstawie tego kiedy użytkownik sobie stopu zażyczy.
zmudix [ palnik ]
sry za dubla, mial byc edit, a mi sie na 'odpowiedz' kliknelo
zmudix [ palnik ]
#include <iostream>
#include <conio.h>
using namespace std;
int main()
int max,b,ile,ilosc=1;
do
cout << "\nile liczb?";
cin >> ile;
while(ile<=0);
cout << "\nwprowadz liczby:\n";
cin >> max;
for (int i=0; i<ile-1; i++)
cin >> b;
if (b==max) ilosc++;
if (b>max) max=b; ilosc=1;
cout << "najwieksza liczba to: " << max << " wystapila ona w ciagu " << ilosc << " razy";
getch();
ronn [ moralizator ]
zmudix, getch (chociaż ma potencjał i akurat w devcpp zadziala, to nie powinno sie tak konczc, tak samo jak uzywac go to) nie zawsze zadziała :) Lepiej napisz to w assemblerze x86 albo jakiegos mikrokontrolera :D
(dobrze sie troche upić)
zmudix [ palnik ]
ronn, assemblera jeszcze na tyle nie znam :) no i getch(); zawsze dzialal u mnie tak, jak nalezy, niezaleznie od kompilatora, w sumie to rownie dobrze moglbym dac tam sysetem("PAUSE"); , chodzilo glownie o zatrzymanie pracy programu, zeby bylo widac wynik. ;]
Swoja droga, niezla polewke z kumplem mialem z tych wczesniejszych "programow". XD
edit: a z tym goto brzmisz jak moj wykladowca od algorytmow, ktos kiedys tego uzyl, to 5 minut sluchal opierniczania :D
Moshimo [ FullMetal ]
Widze ze tutaj same mastery programowania ;)
Sainim [ Chor��y ]
no i getch(); zawsze dzialal u mnie tak, jak nalezy
Na Windowsie zadziała, na Linuksie już nie bardzo.
Polecam przyzwyczaić się do system("pause"); :)