zeed94 19 Napisano 5 Listopada 2013 Udostępnij Napisano 5 Listopada 2013 (edytowane) 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 5 Listopada 2013 przez zeed94 Cytuj Link to post Share on other sites
Luki91 157 Napisano 5 Listopada 2013 Udostępnij Napisano 5 Listopada 2013 (edytowane) 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 5 Listopada 2013 przez Luki91 1 Cytuj Link to post Share on other sites
zeed94 19 Napisano 5 Listopada 2013 Autor Udostępnij Napisano 5 Listopada 2013 Tak dokładnie. Dzięki. Cytuj Link to post Share on other sites
zeed94 19 Napisano 16 Listopada 2013 Autor Udostępnij Napisano 16 Listopada 2013 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; } Cytuj Link to post Share on other sites
Dżi-Aj-Dżo 11 Napisano 16 Listopada 2013 Udostępnij Napisano 16 Listopada 2013 1) w tym przypadku -> return a + n*r; 2) do wyliczenia sumy wyrazow ciagu uzywanie petli jest zbyteczne -> return ((0.5*n)*(2*a+(n-1)*r)); Debugger twoim przyjacielem Cytuj Link to post Share on other sites
zeed94 19 Napisano 17 Listopada 2013 Autor Udostępnij Napisano 17 Listopada 2013 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). Cytuj Link to post Share on other sites
Dżi-Aj-Dżo 11 Napisano 17 Listopada 2013 Udostępnij Napisano 17 Listopada 2013 Blad jest taki ze caly program jest bez sensu, rekurencja ze lapy opadaja, petle for to juz w ogole parodia. Wroc to podstaw Cytuj Link to post Share on other sites
Luki91 157 Napisano 17 Listopada 2013 Udostępnij Napisano 17 Listopada 2013 (edytowane) @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 17 Listopada 2013 przez Luki91 Cytuj Link to post Share on other sites
Recommended Posts
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ą.