C++-ban ezt hogyan tudnám megoldani?
A program írja ki a nevedet az első sorban!
Minden beolvasás előtt készíts kiírást, ami tájékoztatja a felhasználót arról, mit vársz tőle!
Kérj be egy 10 és 20 közötti egész számot ellenőrzött beolvasással, nevezd N-nek!
Kérj be N db egész számot és határozd meg a következőket:
1, a számok átlaga
2, hány negatív van a beolvasott számok között
3, melyik páros és melyik páratlan, minden szám után írd ki
A feladatok eredményét írd ki!
Munkádat sajatnev_sorozat.cpp néven kell mentened!
Ha kimész a konyhába és kinyitod a hűtőt, ott nem lesz benne... Nekiülsz és megcsinálod, hogy máshogy?
Elkezdted? Hol akadtál el?
Elkezdtem és mivel kezdő vagyok, érdekel a prgoramkódja, kissé bonyolult még ez.
Megadok egy számot 10 és 20 között, mondjuk 15-öt és így 15 különböző szám átlaga, hány negatív van benne és melyik páros, páratlan. Így gondoltam, valahogy így kéne elmagyarázni, ha szabad. :)
1.) Létrehozol két változót, egyet a negatív számok számának tárolásra, egyet a számok összegének tárolására. Mindkettő egész szám és 0-ról indul.
2.) Bekéred N-t
3.) Elkezdesz N-szer beolvasni 1-1 egész értéket
3.) a.) az összeghez hozzáadod a beolvasott számot
3.) b.) ha negatív, akkor a negatív számlálót eggyel növeled
3.) c.) ha páros (2-es osztás maradéka 0), akkor azt írod ki, különben azt h páratlan
4.) Miután beolvastad az N számot akkor az összeget elosztod N-nel (castold float-tá, mert különben levágja a tizedest!), megvan az átlag, amit kiírsz a negatív számok számával egyetemben.
#include <iostream>
using namespace std;
int main ()
{
int N,negativ,szam;
char osszeg,atlag;
{
negativ==0;
osszeg==0;
atlag==0;
do{
cout<< "Kerek egy 10 es 20 kozotti szamot! ";
cin>>N;
}while (N<10&&N>20);
for (int i=1;i<=N;i++)
{ cout<< "Kerek egy szamot! ";
cin >>szam;
if (szam mod 2=0)
{
cout<<paros;
}
else
{
cout<<paratlan;
}
if (szam(0))
{
negativ=negativ+1;
}
osszeg=osszeg+szam;
}
atlag=osszeg/n;
cout<< " Szamok atlaga: " <<atlag<<endl;
return 0;
{
Mi a probléma? Nem futtatja le.
Hűha...
Eddig gondolom nem C++-ban programoztál! Próbáld értelmezni a fordító által dobott üzeneteket!
A hibák a teljesség igénye nélkül:
a.) nem kell a programkód elején deklarálni a változókat, azokat elég a felhasználás helyén.
b.) az értékadás operátor az = és nem az == jelek.
c.) az osszeg lehet int (a char kisebb)
d.) az atlagot ha tárolod, akkor ne int legyen (1 és 2 átlaga 1,5, ami az int nem tud ábrázolni). Legyen float v. double
e.) (N<10&&N>20) ez sosem fog teljesülni, nincs olyan szám, ami kisebb 10-nél és nagyobb 20-nál
f.) az osztási maradékot %-al képezzük
g.) ha valaminek az egyenlőségét vizsgáljuk, akkor használjuk a == (negáltja: !=) és nem az = jelet.
h.) paros és paratlen kiíratásnál lemaradtak az idézőjelek és/vagy nem deklaráltad őket, mint változókat
i.) if(szam(0)) < nincs szam() függvényed, vizsgálatra a < és > jeleket használd! (esetleg <= vagy >=)
j.) atlag=osszeg/n; két intet osztva (ha kijavítod) az eredmény is int lesz. Ezek közül az egyiket floatra v. double-ra kell konvertálni, mint már írtam.
#include <iostream>
using namespace std;
int main ()
{
int n,negativ,szam;
double osszeg,atlag;
{
negativ=0;
osszeg=0;
atlag=0;
do{
cout<< "Kerek egy 10 es 20 kozotti szamot! ";
cin>>n;
}while (n<=10 || n>=20);
for (int i=1;i<=n;i++)
{
if(szam%2==0)
{
cout<<"paros"<<endl;
}
else
{
cout<<"paratlan"<<endl;
}
if (szam<0)
{
negativ=negativ+1;
}
osszeg=osszeg+szam;
};
atlag=osszeg/n;
cout<<"Szamok atlaga: "<<atlag<<endl;
cout<<"Negativ szamok: "<<negativ<<endl;
return 0;
}
}
Valamennyire így sikerült, de valahogy nem értem. Beírom hogy 15, és 15x írja le hogy páratlan. De ugye a 15 szám közül van páros is, így pedig az átlagot és a negatívat se számolja.
Nyah, ez már sokkal jobb.
A for cikluson belül a szam értékét egyszer sem kéred be, ott valami memória szemét van, ezért írja ki 15-szor, hogy páratlan. Kérd be a megfelelő helyen!
+ nézd meg a for magját! Biztos h minden számnál ki kell számolni az átlagot és nem csak a végén?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!