Leírnátok a következő program C++ kódját? A=1+1/2+1/4+1/8+1/16+1/ (2^n). Szóval megadom az "n"-t, és ez alapján számítja ki az "a"-t.
Kezdő vagyok, ezt írtam, de ez nem jó.. segítség?
#include <iostream>
using namespace std;
int main()
{
int i,a;
float eredmeny;
cout << "Adja meg a szamot!\n";
cin >> a;
for(i=0; i<=a; i++)
eredmeny=1/2^i;
i++;
cout << eredmeny << endl;
system("pause");
return 0;
1. Az "eredmeny" változónak adj valamilyen kezdőértéket. Célszerű 0-t.
2. A for ciklusban az eredmeny változó értékét mindig törlöd. Ne töröld, hanem add hozzá az új részeredményt. Ne = jelt használj, hanem += jeleket (esetleg eredmeny=eredmeny+1/2^n, a kettő ugyanaz)
Nem tudom, hogy kötelező-e for-ral csinálni, szerintem lehet más ciklussal de a fent leírt módon kell, szóval nem lehet 2-1/2^i..
nem jövök rá... van, hogy kilép 0-val való osztás miatt, meg néha ugyanaz a szám az eredmény, mint az a...
A "^" c++ - ban bitenkénti kizáró VAGY operátora, nem a hatványozásé. Az eredmeny változó értékét meg mindig felülírod nem hozzáadod.
i++; sort meg nem is értem minek.
Amit az első irt. Az eredmeny-nek adj egy kezdőértéket (0-t).
Utána a for-loopban pedig nem kell a második i++ (egyrészt a kódblokkon kivül van, tehát semmi effektje nincs a for-loopon belül, másrészt ha benn is lenne, akkor meg 2-t ugranál az i-vel minden körben), csak ennyi:
for(i=0; i<=a; i++){
eredmeny += 1/(pow(2, i));
}
pow()-hoz kell a <cmath> headert is #includolni.
És a végén nem értem a system("pause")-t miért kell.
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!