Skocz do zawartości

Problem z ciągiem Eulera


Recommended Posts

Witam! Tak jak w temacie. Chciałem napisać program który wypisuje n pierwszych elementów ciągu Eulera. Jednakże mam problem ponieważ nie wiem jak mam sformułować pętle by wypisywała mi te wyniki. Dlatego bardzo bym był wdzięczny gdy ktoś mi pomógł to napisać i wytłumaczyć. 

/*Napisz program wypisujący n pierwszych elementów ciągu Eulera: a0, a1, … , an-1*/

#include <stdio.h>
#include <math.h>

int main()
{
	int n, a;
	printf("Podaj ilosc elementow Ciagu Eulera: "); scanf("%d", &n);
	
	if (n < 0)
	{
		printf("Zle dane. Liczba okreslajaca ilosc elementow jest liczba dodatnia.\n");
	}
	else
	{
	a = pow(n, 2) - n + 41;
		printf("%d\n", a);
		
	}
	system("pause");
	return 0;
} 

PS Oczywiście jest to język C

Edytowane przez zeed94
Link to post
Share on other sites
int i;
for(i=0;i<n;i++)
{
    a = pow(i, 2) - i + 41;
    printf("%d\n", a);
}

Liczysz to co do tej pory tylko, że dla liczb od 0 do n.

O to chodziło?

Edytowane przez Luki91
  • Popieram 1
Link to post
Share on other sites
  • 2 tygodnie później...

Panowie moglibyście mi jeszcze wskazać błąd w tym programie?

/*Napisz funkcję zwracającą wartość sumy pierwszych n wyrazów ciągu arytmetycznego.*/
#include<stdio.h>
#include<stdlib.h>

int ciag_arytmetyczny(int a, int r, int n) /*Funkcja oblicza n-ty wyraz ciągu arytmetycznego*/
{
	return a + (n - 1)*r;
}
int n_ciag(int a, int r, int n) /*Funckja wypisuje n wyrazów ciągu arytmetycznego*/
{
	int i = 0;
	for (i = 0; i <= n; i++)
	{
		printf("\ta(%i)=%i\n", i, ciag_arytmetyczny(a, r, i));
	}
}
int suma(int a, int r, int n)
{
	int i;
	for (i = 0; i < n; i++)
	{
		return suma(a, r, i) + ciag_arytmetyczny(a, r, i);
	}
}
int main()
{
	int a, r, n;
	printf("Podaj pierwszy wyraz ciagu arytmetycznego i jego roznice: "); scanf("%i %i", &a, &r);
	printf("Podaj nr elementow ciagu: "); scanf("%i", &n);
	n_ciag(a, r, n);
	printf("Suma %i elementow ciagu arytemtycznego jest %i.\n", n, suma(a, r, n));
	system("pause");
	return 0;
}
Link to post
Share on other sites

Możecie mi jeszcze powiedzieć gdzie mam błąd w tym programie: 

#include<stdio.h>
#include<stdlib.h>
#define R 10

int suma(int tablica[R])
{
	int i;
	for (i = 0; i < R; i++)
	{
		return suma(tablica) + tablica[i];
	}
}

int main()
{
	int tablica[R];
	int i;
	for (i = 0; i < R; i++)
	{
		printf("tablica(%i) pozostalo %i: ", i, R - 1 - i); scanf("%i", &tablica[i]);
	}
	printf("Suma wynosi %i.\n", suma(tablica));
	system("pause");
	return 0;
} 

bo wyskakuje mi coś takiego: Unhandled exception at 0x00D91AF9 in ANSI C.exe: 0xC00000FD: Stack overflow (parameters: 0x00000001, 0x001B2F84).

Link to post
Share on other sites

@zeed94, przepełniasz stos bezsensowną rekurencją. Ten program miał liczyć sumę elementów tablicy? To się robi iteracyjnie... A poza tym z tego co widzę nie masz zielonego pojęcia jak używać rekurencji. Poczytaj trochę o tym :)

Edytowane przez Luki91
Link to post
Share on other sites

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...