GRY-Online.pl --> Archiwum Forum

Dev C++ Zadanie... Problem

11.01.2007
13:57
[1]

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 .

11.01.2007
14:11
[2]

Zax_Na_Max [ Bo Emeryt Znał Karate ]

Panowie... ;(

11.01.2007
14:32
[3]

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;

11.01.2007
14:35
[4]

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ć

11.01.2007
14:37
[5]

umek [ Szczęśliwy ]

Scatterhead- a co ja napisałem?:P

Pewnie jest w LO i musi toto robić

11.01.2007
14:39
[6]

Scatterhead [ łapaj dzień ]

umek -> zacząłem pisać zanim była twoja odpowiedź

11.01.2007
14:39
[7]

donzoolo [ Senator ]

nie to zebym byl specem czy cos, ale w forze powinno byc = a nie ==, chyba

11.01.2007
14:44
[8]

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

11.01.2007
14:49
[9]

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 =, !=, >, <, >=, <=, <>

11.01.2007
14:59
[10]

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: <>.

11.01.2007
15:37
[11]

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;

11.01.2007
16:37
smile
[12]

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.

11.01.2007
23:59
[13]

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...)

12.01.2007
00:06
[14]

Moshimo [ FullMetal ]

Taaa mialem to zmienic i tez zapomnialem ;].

12.01.2007
00:21
smile
[15]

DarkStar [ magister inzynier ]

Madril, skladnia jest wspaniala, tylko program do dupy:)

12.01.2007
00:28
[16]

Madril [ I Want To Believe ]

DarkStar --> Ja tylko poprawiłem to, co ktoś napisał wyżej, nie pisałem swojego. :)

12.01.2007
00:33
[17]

Moshimo [ FullMetal ]

A jak powinna wygladac "dobra" wersja?

12.01.2007
00:38
[18]

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.

12.01.2007
01:17
[19]

zmudix [ palnik ]

sry za dubla, mial byc edit, a mi sie na 'odpowiedz' kliknelo

12.01.2007
01:28
[20]

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();

12.01.2007
01:38
smile
[21]

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ć)

12.01.2007
01:42
[22]

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

12.01.2007
02:06
[23]

Moshimo [ FullMetal ]

Widze ze tutaj same mastery programowania ;)

12.01.2007
07:34
smile
[24]

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"); :)

© 2000-2024 GRY-OnLine S.A.