[C] Tablica - przesuniecie indeksu w lewo
Ostatnio zmodyfikowano 2014-03-27 14:14
Marek.92 Temat założony przez niniejszego użytkownika |
[C] Tablica - przesuniecie indeksu w lewo » 2011-11-20 20:06:15 Witam Mam za zadanie napisac program w jezyku c w ktory bedzie zawierac funkcję, która otrzymuje dwa argumenty liczbę n oraz n-elementową tablicę tab o elementach typu int i przesuwa o jeden w lewo wszystkie elementy tablicy (tak, żeby wartośd elementu o indeksie1 znalazła się w elemencie o indeksie 0, wartośd elementu o indeksie 2 znalazła się w elemencie o indeksie 1, zaś wartośd elementu o indeksie 0 w elemencie o indeksie n-1). Jestem poczatkujacym programista wiec nie bardzo wiem jakie kroki poczynic wykonujac taki program. Za wszelka pomoc byl bym wdzieczny. tutaj zamieszczam czesc kodu ktory sam napisalem void max
{ int i int j int rob for( i = 0, j = n - 1; i < n / 2, i++, j-- )
|
|
malan |
» 2011-11-20 20:16:12 Prawdopodobnie przez przypadek uciąłeś kawałek kodu, ale to nieważne :) Najprościej chyba będzie tak: 1. Zapamiętaj pierwszy element tablicy. 2. int i; for( i = 0; i < n - 1; ++i ) array[ i ] = array[ i + 1 ]; 3. Element zapamiętany w punkcie pierwszym staje się ostatnim elementem tablicy. |
|
Marek.92 Temat założony przez niniejszego użytkownika |
» 2011-11-20 21:55:16 Nie za bardzo rozumiem tej czesci napisanej powyzej i nie wiem jak mam zmrozic czesc kodu i pozneij przeniesc ja na koniec wiec zaczalem jeszcze raz probowac i wyszla mi taka czesc #include<stdio.h>
void przepisz( int n, int tab1, int tab2 ); { int i; for( i = 0; i < n; i++ ); tab2[ i ] = tab1[ i ]; }
teraz nie wiem tylko jak poprowadzic kod aby doszedl do tab-1 i sie zatrzymal |
|
malan |
» 2011-11-20 22:46:27 Masz podany gotowy algorytm, który działa poprawnie. Gdzie Ty widzisz problem? #include <iostream>
void moveLeft( int myArray[], int arraySize ) { }
int main() { const int ARRAY_SIZE = 3; int myArray[ ARRAY_SIZE ] = { 1, 2, 3 }; for( int i = 0; i < ARRAY_SIZE; ++i ) std::cout << myArray[ i ] << ' '; moveLeft( myArray, ARRAY_SIZE ); std::cout << std::endl; for( int i = 0; i < ARRAY_SIZE; ++i ) std::cout << myArray[ i ] << ' '; } Output: 1 2 3 2 3 1 Funkcja moveLeft została zaimplementowana na podstawie algorytmu, który opisałem powyżej. |
|
Marek.92 Temat założony przez niniejszego użytkownika |
» 2011-11-20 23:08:37 Dzieki za napisanie tego programu moze i wszystko ladnie dziala tylko ze tak jak jest to napisane w temacie potrzebuje tego programu w c a nie w c++ tak po za tym to wydaje mi sie ze to powinno inaczej wygladac
cos w stylu:
0 1 2 0 1 2 |
|
DejaVu |
» 2011-11-21 09:12:37 Dzieki za napisanie tego programu moze i wszystko ladnie dziala tylko ze tak jak jest to napisane w temacie potrzebuje tego programu w c a nie w c++ tak po za tym to wydaje mi sie ze to powinno inaczej wygladac |
Czyli co? Przychodzisz po gotowca? No bez jaj... |
|
PisiekPL |
» 2014-03-27 14:14:42 << załóż własny temat >> |
|
« 1 » |