Zadanie domowe rozdzial 22 Petla For.
Ostatnio zmodyfikowano 2017-02-20 14:53
alleczad Temat założony przez niniejszego użytkownika |
Zadanie domowe rozdzial 22 Petla For. » 2017-02-20 14:43:09 Mam problem z zadaniem domowym z 22 rozdziału. Treść zadania: Napisz program, który za pomocą pętli for wypełni 20 elementową tablicę następującym ciągiem liczb: {1, 6, 11, ... , (1 + n*5)}. Zawartość wypełnionej tablicy wypisz na ekran. Jak rozumiem kazdy kolejny wyraz ciagu ma powstawac przez dodanie liczby 5. Niestety to co napisalem się nie kompiluje. Mogę prosić o jakieś wskazówki. Oto moj kod: #include <iostream>
using namespace std;
void wczytawanie_do_tablicy( int wartosc_elementu[], int ilosc_elementow ) { int i = 1; for( int i = 1; i < ilosc_elementow; i++ ) { cin >> wartosc_elementu[ i ] =( wartosc_elementu[ i - 1 ] ) + 5; i++; } } void wypisywanie_elementow( int wartosc_elementow, int ilosc_elementow ) { int i = 1; for( int i = 1; i < ilosc_elementow; i++ ) { cout << wartosc_elementow[ i ]; i++; } }
int main() { int tablica[ 20 ]; wczytawanie_do_tablicy( tablica, 20 ); wypisywanie_elementow( tablica, 20 ); return 0; }
|
|
hit |
» 2017-02-20 14:46:42 int i = 1; for( int i = 1; i < ilosc_elementow; i++ )
To na pewno jest niepoprawne. Tablice indeksuje się od 0, a nie od 1 i masz podwójną deklarację. Załącz treści błędów. cin >> wartosc_elementu[ i ] =( wartosc_elementu[ i - 1 ] ) + 5;
To także jest źle. cin jest strumieniem do odczytywania danych, w przypadku tego zadania nie powinieneś go nigdzie używać. Jeśli chcesz to zrobić w ten sposób to musisz mieć wypełnioną wartość dla elementu 0 w tablicy. Inaczej wartosc_elementu[ i - 1 ] w pierwszej iteracji będzie jakimś losowym ciągiem i będzie się to propagować z każdą iteracją. Edit: i to: wewnątrz pętli for również jest niepoprawne. Zapoznaj się z tym: http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Petla-for/294 |
|
kistel66 |
» 2017-02-20 14:51:51 Polecam zadeklarować pierwszy (zerowy) element w mainie, który będzie początkiem naszego ciągu: cout << "Podaj wartosc 0 elementu: "; cin >> tablica[ 0 ];
void wczytawanie_do_tablicy( int wartosc_elementu[], int ilosc_elementow ) { for( int i = 1; i < ilosc_elementow; i++ ) { wartosc_elementu[ i ] = wartosc_elementu[ i - 1 ] + 5; } }
|
|
hit |
» 2017-02-20 14:53:52 Nie musi pobierać pierwszego elementu od użytkownika, ponieważ jest on znany. Ja bym to zrobił tak: void wczytawanie_do_tablicy( int wartosc_elementu[], int ilosc_elementow ) { for( int i = 0; i < ilosc_elementow; i++ ) { wartosc_elementu[ i ] = i * 5 + 1; } }
i dalej void wypisywanie_elementow( int wartosc_elementow, int ilosc_elementow ) { for( int i = 0; i < ilosc_elementow; i++ ) { cout << wartosc_elementow[ i ]; } }
rozmiar tablicy możesz definiować jako stałą. |
|
« 1 » |