Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Tablica - przesuniecie indeksu w lewo

Ostatnio zmodyfikowano 2014-03-27 14:14
Autor Wiadomość
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
C/C++
void max

{
   
    int i
    int j
    int rob
   
    for( i = 0, j = n - 1; i < n / 2, i++, j-- )
    //...
P-44405
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.
C/C++
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.
P-44406
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
C/C++
#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
P-44423
malan
» 2011-11-20 22:46:27
Masz podany gotowy algorytm, który działa poprawnie. Gdzie Ty widzisz problem?

C/C++
#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.
P-44425
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
P-44426
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...
P-44430
PisiekPL
» 2014-03-27 14:14:42
<< załóż własny temat >>
P-107282
« 1 »
  Strona 1 z 1