Kod formatujący i z typ long double.

0

Witam.
Jestem początkujący i mam pewien problem... Otóż napisany przeze mnie program ma sumować wyrazy ciągu dopóki nie znajdzie się wyraz mniejszy od 0,000001... wszystko fajnie jednak na końcu cały czas funkcja printf drukuje mi zera... co jest źle? Z góry dziękuję za wszystkie odpowiedzi!!! :)

#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */


int main(int argc, char *argv[]) {
long double S=0,k=1;					
float e=0.000001;
while(1/(k*(k+1))>e)
{
	S+=1/(k*(k+1));
	k++;
}
printf("Suma to: %Lf",S);		 
	return 0;
}
0

http://melpon.org/wandbox/permlink/4eqyL1El5rBBpUaW

Tutaj chyba działa jak należy.

W jaki sposób kompilujesz program?

0

Kompilator to Dev-C++ no i normalnie f11 albo f9 potem f10 ;D nie wiem czy dokładnie o to chodziło ;D ale mówię... dopiero zaczynam :)

0

%g ale stracisz trochę precyzji xd

0

Właśnie przy pomocy kodu formatujacego g też nie wychodzi

1

Czemu Dev-C++? Chyba każdy tutaj wskaże Ci, że to nieaktualizowane i marne środowisko. W nim też miałem problemy (gdzie ten sam kod w innych działał bez zarzutu). Może code::blocks (with mingw) albo Visual Studio?

0

Jestem początkujący i facet na ćwiczeniach takie środowisko zaproponował no to z niego korzystałem. :D Ale skoro tak to spróbuję w innym i napisze czy działa! Dzięki!

0

Wszystko działa, dzięki! :D

0

Zmień zmienne S i k z long double na float, stracisz trochę na precyzji ale i tak przecież dokladność e masz podaną jako float, potem wystarczy funkcję printf przepisać tak: printf("Suma to: %f", S); U mnie na code::block działa, no i przydało by się poczytać o funkcji printf :P

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