Program przybliżającą liczbę e

0

Proszę o pomoc. Nie mogę znaleźć błędu. W załączniku treść polecenia ;)

#include <iostream>

using namespace std;
int main(){
	int n,k=1;
	int silnia,ulamek,e;
	cout<<"Podaj n \n";
	cin>>n;

for(int silnia;silnia<n;silnia++){
	
for(int i;i<k;i++){
	silnia=k*i;}
ulamek=1/(silnia);}

e=1+ ulamek;
}
0

Trzymasz wyniki w intach.

0

A troszkę jaśniej?

0
 
#include <iostream>
 
using namespace std;
int main(){
    int n,k=1;
    int silnia,ulamek,e;
    cout<<"Podaj n \n";
    cin>>n;
 
for(int silnia;silnia<n;silnia++){
 
for(int i;i<k;i++){
    silnia=k*i;}
ulamek=1/(silnia);}
 
e=1+ ulamek;
}

Jaśniej - prawie w każdej linijce masz jakiś niedorzeczny błąd:
1.

  int silnia,ulamek,e;

super, ale potem jest ulamek=1/(silnia);

 co zawsze będzie równe 0.
2. 
```cpp
 for(int silnia;silnia<n;silnia++){ 

błąd, zmienna silnia jest niezainicjalizowana - najpewniej są tam jakieś śmieci.
3. Okropny sposób nawiasowania.

0

Nie wiem jak to pozmieniać żeby bylo dobrze ;(

0

Polecam używać typów zmiennoprzecinkowych do takich operacji i przejść przez jakiś elementarny kurs języka.

0

#include <iostream>

using namespace std;
int main(){
int n,k=1;
double silnia,ulamek,e;
cout<<"Podaj n \n";
cin>>n;

for(double silnia=0;silnia<=n;silnia++){

for(int i=1;i<k;i++){
silnia=k*i;}
ulamek=1/(silnia);}

cout<<"1/k!="<<ulamek<<endl;

e=1+ulamek;
cout<<e;
}

Dobra, mam tak. Nadal jednak nie wiem jak ogarnąć kwestie szeregi 1/k!

0

Naprawdę, pomyśl.

using namespace std;
int main(){
    int n,k=1;
    double silnia,ulamek,e;
    cout<"Podaj n \n";
    cin>>n;

for(double silnia=0;silnia<=n;silnia++){
    
for(int i=1;i<k;i++){
    silnia=k*i;}
ulamek=1/(silnia);}

cout<<"1/k!="<<ulamek<<endl;

e=1+ulamek;
cout<<e;
} 
  1. Po co Ci dwie deklaracje zmiennej silnia?
  2. Zastanów się, co może się wydarzyć podczas dzielenia przez zero.
0
 #include <iostream>

using namespace std;
int main(){
	int n,k=1;
	cout<<"Podaj n \n";
	cin>>n;
		double silnia=1;
	    for(int i=1;i<=n;i++){
        silnia=silnia*i;}
	cout<<"silnia="<<silnia<<endl;
}

No dobrze, silnia działa. Ale nadal nie wiem jak zrobić szereg 1/k!.

0

Nie umiesz posumować wyrazów szeregu (1 / k!), czy czego, bo nie bardzo rozumiem?

0

Nie wiem jak wprowadzić szereg.

0

Dodam, że liczenie silni: 1!, 2!, 3!,.. jest złym pomysłem.

0
#include <iostream>
#include <math.h>

#define M 10000

int main() {
  for (int n = 1; n < M; ++n) {
    double e = pow((1 + 1.0 / n), n);
    std::cout << e << std::endl;
  }
  return 0;
}
 

1 użytkowników online, w tym zalogowanych: 0, gości: 1