Gdzie jest błąd?

2015-11-27 22:36
Biały Kot
0

Witam!
Nie wiem dlaczego na wyjsciu mam "NULL" zamiast tego co jest w t[1]. Ma ktos jakies pomysly?

#include <stdio.h>

int main()
{

char t[260];

int i,n;

scanf("%d", &n);

for(i=0; i<n; i++)

{

    scanf("%s", t);

}

printf("%s", t[2]);

return 0;

}

Pozostało 580 znaków

2015-11-27 22:45
sig
0

Po pierwsze powinno być %c zamiast %s, po drugie gdzie jest & w drugim scanf?

&amp; w tym wypadku byłby błędem i działałoby tylko przypadkiem (bo jest to akurat tablica statyczna) - kaczus 2015-11-27 22:58
Jak dla mnie char t[260]; oznacza zwykłą tablicę charów - sig 2015-11-28 07:52
Jest, więc tak należy przekazać adres do niej http://kaczus.ppa.pl/art/Skrzynia_porad,18.html#scanf - kaczus 2015-11-28 08:43
Biorąc pod uwagę for-a chciał do każdego elementu tablicy przyporządkować wczytaną wartość, a nie jedną do całej tablicy. - sig 2015-11-28 09:01
Możliwe (patrząc na to co dalej wypisuje), ale wtedy powinien mieć tablice stringów, więc zrobiłeś, za duży skrót myślowy. - kaczus 2015-11-28 09:05
Pisząc posta myślałem że chodzi o znaki, sugerując się tablicą charów - sig 2015-11-28 15:08

Pozostało 580 znaków

2015-11-27 22:50
Biały Kot
0

Poprawiłem na t[i] ale niezależnie czy mam & przy drugim scanf czy nie program i tak sie wysypuje. Ma ktos jakies pomysly?

Ok, po zmianie na c dziala. Ale dlaczego printf wypisuje mi 1 literke a nie caly ciag znakow? W drugim scanf zapisalem w pamieci caly ciag

Pozostało 580 znaków

2015-11-27 22:59
0

Jak chcesz wypisać ciąg od drugiego znaku to powinieneś dac:

 printf("%s", &t[2]);

Ogólnie na prace domowe mam stawki zaporowe. Czasem coś o programowaniu znajdzie się na mojej stronie

Pozostało 580 znaków

2015-11-27 23:54
Biały Kot
0

Ehh.. nadal nie działa

 #include <stdio.h>

int main()
{

char t[260];

int i,n;

scanf("%d", &n);

for(i=0; i<n; i++)

{

    scanf("%s", t[i]);

}

printf("%s", t[2]);

return 0;

}

Jakies pomysly?

Pozostało 580 znaków

2015-11-28 00:04
0
scanf("%s", t[i]);
// ma byc
scanf("%c", &t[i]);
printf("%s", t[2]);
// ma byc
printf("%s", t);

Pozostało 580 znaków

2015-11-28 01:55
Biały Kot
0

No dobra, ale ja chce miec te ciagi znajow jako pojdyncze miejsce w tablicy.

Wpisuje sobie:
4
qwer
asdfgg
zxcgdfg
yuityuiyuiy

i wtedy moim t[0] jest qwer
t[1] asdfgg

itd..

Pozostało 580 znaków

2015-11-28 07:51
sig
0

W takim przypadku potrzebujesz tablicy stringów, patrz http://www.tutorialspoint.com/c_standard_library/string_h.htm. Char to pojedynczy znak a nie ich ciąg.

Pozostało 580 znaków

2015-11-28 08:47
0

Napisz co chcesz uzyskać, bo tak błądzimy jak we mgle. Kryształowa kula jest w naprawie, a Twoje kolejne przykłady, które nie działają (bo nie maja prawa działać) sa jeszcze gorsze... Napisz może po kolei (jak to mawiają w PKP), co chcesz uzyskać tym kodem.


Ogólnie na prace domowe mam stawki zaporowe. Czasem coś o programowaniu znajdzie się na mojej stronie

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0