tablice jezyk c

markez444
Użytkownik
Użytkownik
Posty: 22
Rejestracja: 31 paź 2009, o 16:49
Płeć: Mężczyzna
Lokalizacja: Podlaskie
Podziękował: 7 razy

tablice jezyk c

Post autor: markez444 »

Witam Wszystkich;
Zwracam sie do was o pomoc w rozwiazaniu pewnego problemu otóż mam takie zadanko:

Napisać program, który przesunie zawartość n-elementowej tablicy o jedna pozycje w górę.

Mam do tego tylko taki "mniej więcej rozpisany kod" i nie wiem co dalej:
int i,pom;
for(i=0; i<=n; i++)
{
pom = tab[i+1];
tab[i+1] = tab;
tab = pom;
}
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

tablice jezyk c

Post autor: matshadow »

to jest niepoprawny kod, bo odwołuje się w pewnym momencie do n+1 elementu n-elementowej tablicy.

Kod: Zaznacz cały

#include <stdio.h>
int tab[10000000];
int main()
{
    int n,i;
    scanf("%d", &n); //wczytujemy ilość elementów
    for(i=0; i<n; i++) scanf("%d", &tab[i]); //wczytujemy kolejne elementy
    printf("
Przed:"); //Opcjonalnie - wypisujemy zawartość przed zamianą
    for(i=0; i<n; i++) printf("%d ", tab[i]);
    int pom=tab[0];
    for(i=0; i<n-1; i++)
        tab[i] = tab[i+1];
    tab[n-1]=pom;
    printf("
Po:"); //Opcjonalnie - wypisujemy zawartość po zamianie
    for(i=0; i<n; i++) printf("%d ", tab[i]);
    printf("
");
    return 0;
}
markez444
Użytkownik
Użytkownik
Posty: 22
Rejestracja: 31 paź 2009, o 16:49
Płeć: Mężczyzna
Lokalizacja: Podlaskie
Podziękował: 7 razy

tablice jezyk c

Post autor: markez444 »

dzieki za pomoc(matshadow) ale mam problem bo ten caly kod kompletnie nic nie wyswietla jak go sie uruchomi
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

tablice jezyk c

Post autor: matshadow »

tuż przed return 0; daj takie coś:

Kod: Zaznacz cały

char c;
scanf("%c", &c);
Jak pomogłem, to daj "pomógł" pod postem
markez444
Użytkownik
Użytkownik
Posty: 22
Rejestracja: 31 paź 2009, o 16:49
Płeć: Mężczyzna
Lokalizacja: Podlaskie
Podziękował: 7 razy

tablice jezyk c

Post autor: markez444 »

hhhmmmm wstawilem to tak jak zaznaczyles w odpowiedzi ale nadal jest tylko czarne tlo i nic pozatym mimo wszystko dzieki
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

tablice jezyk c

Post autor: matshadow »

no a zacząłeś wczytywać liczby do tablicy? najpierw wpisujesz ile ma liczb, a potem liczby po kolei
markez444
Użytkownik
Użytkownik
Posty: 22
Rejestracja: 31 paź 2009, o 16:49
Płeć: Mężczyzna
Lokalizacja: Podlaskie
Podziękował: 7 razy

tablice jezyk c

Post autor: markez444 »

ale "matshadow" my sie chyba nie rozumiemy bo ja napisalem tobie ze ten kod ktory mi podales kompletnie nie dziala bo ja nawet nie moge podac zadnych liczb jak uruchomie ten kod jest ciagle czarne tlo i nic wiecej nie moge zrobic z tego co widze to wynika ze ten kod byloby trzeba jeszcze zmodyfikowac zeby chociaz podawal wczytywana ilosc liczb bo nawet tego nie robi widze ze tutaj trzeba byloby uzyc nawiasow oraz pozamieniac gdzie nie gdzie kody miedzy soba linijkami jak masz mozliwosc to sam sprawdz zobaczysz ze przyznasz mi racje......
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

tablice jezyk c

Post autor: matshadow »

Kod: Zaznacz cały

#include <stdio.h>
int tab[10000000];
int main()
{
    int n,i;
    scanf("%d", &n);
    for(i=0; i<n; i++) scanf("%d", &tab[i]);
    printf("
Przed:");
    for(i=0; i<n; i++) printf("%d ", tab[i]);
    int pom=tab[0];
    for(i=0; i<n-1; i++)
        tab[i] = tab[i+1];
    tab[n-1]=pom;
    printf("
Po:");
    for(i=0; i<n; i++) printf("%d ", tab[i]);
    printf("
");
    char c;
    scanf("%c", &c);
    scanf("%c", &c);
    return 0;
}
Mi ten kod pod Dev-C++ śmiga
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

tablice jezyk c

Post autor: smiechowiec »

Matshadow zaprezentował kod wykonujący tzw ROLL i pewno o to chodziło,
choć z podanej treści może też chodzić o tzw SHIFT

Kod: Zaznacz cały

#include <stdio.h>
#define ROZMIAR 5

int tab[ROZMIAR];
  
int main() {
  int i;
  printf("Wartosc poczatkowa tablicy : ");
  for(i = 0; i < ROZMIAR; i++) {
    tab[i] = i; // wypełniamy kolejne komórki kolejnymi liczbami
    printf("%d ", tab[i]);
  }
  puts("");
  
  // pierwszy element tablicy jest niszczony (nadpisywany drugim)
for(i = 0; i < (ROZMIAR - 1); i++)
  tab[i] = tab[i+1]; // przesuwamy kolejne elementy o jeden w lewo
tab[ROZMIAR -1] = 0; // ostatni element zerujemy

  printf("Wartosc tablicy po przesunieciu : ");
  for(i = 0; i < ROZMIAR; i++) {
    printf("%d ", tab[i]);
  }
  puts("");
  return 0;
}
markez444
Użytkownik
Użytkownik
Posty: 22
Rejestracja: 31 paź 2009, o 16:49
Płeć: Mężczyzna
Lokalizacja: Podlaskie
Podziękował: 7 razy

tablice jezyk c

Post autor: markez444 »

faktycznie pod dev ten program śmiga ale już i pod codeblocks działa miałem pewien problem z programem także wielkie dzięki za pomoc w zrealizowaniu mojego zadanka trzymaj sie i powodzenia oby tak zawsze z każdym problemem Ci świetnie szło
ODPOWIEDZ