Zadanie "domowe" - zastanawiam się nad wykonaniem.

0

Witam serdecznie, mam mały problem z zadaniem domowym.
Oto moje zadanie :
[code]1.Ask user to give 10 names of best friends (first and last name), each friend names should be in separate line
2.Display that names in opposite order than they were given.
3.Additional constraints:
You can use scanf function once and you cannot use any other functions for scanning.
You can use printf function once and you cannot use any other functions for printinng.[/code]

Ogólnie wiem jak zrobić całe zadanie, poza jednym małym szkopułem, a mianowicie normalnie bym korzystał z stringów, ale wątpie, że można.
Więc chciałbym użyć char, jednakże nie wiem czy tak się da.

Czy ktoś może dać małą wskazówkę, à propos zadania?

Z góry bardzo dziękuję.

Pozdrawiam

0

Trzymaj imie i nazwisko w tablicy charow.

0

google: cplusplus scanf
przykład w dokumentacji.

0

Dzięki za szybką odpowiedź.

Ja rozumiem na czym polega char, tylko nie wiem jak utworzyć tablicę z chara.

Przykładowo char cos[50];
mam tutaj tylko 50 znaków.

Tutaj:
http://www.cplusplus.com/reference/cstdio/scanf/
za bardzo nie widzę tego czego szukam.

Jeszcze raz wielkie dzięki.

0

No tak tego tak trudno znaleźć jest mocno schowane na samym dole!

  char str [80];
  ...
  scanf ("%79s",str);  
0

Widziałem to, jednakże nie wiedziałem, że to o to chodzi - nigdy nie miałem styczności z taką składnia.

Raz jeszcze dziekuje i sorry za moje niedopatrzenie :)

Pozdrawiam

0

Czy robię coś źle?

#include <stdio.h>
main()
{
	char str[80];
	for(int i=0;i<3;i++)
	{
		scanf("%is",&str);  // Robiąc jak w przykładzie, tj. bez &, efekt jest ten sam.
	}
	for(int i=0;i<3;i++)
	{
		printf("%is",str);
	}
} 
0

Tak, bardzo źle, nie przeczytałeś, nie zrozumiałeś i próbujesz wykombinować program. Tak się nie da.

0

Chyba źle wytłumaczyłem o co mi chodzi :)
Przykładowo, jeżeli chcę wpisać 10 cyfr to najprościej będzie stworzyć 10elementową tablicę zmiennej int ( int t[10]) i wczytać ją forem, z kolei nie wiem jak zrobić to charem.
Jeżeli zrobię char cos[5], to mogę wpisać maksymalnie 5 znaków, a na myśli mam coś takiego jak z (int t[10].
Czy da się tak zrobić z charem? Czy trzeba użyć stringow

0
char tb[10][256];
0
Złoty Kot napisał(a):

Czy da się tak zrobić z charem? Czy trzeba użyć stringow

Nie wiem co ty tak z tymi stringami, ale tak dla twojej wiadomości to w C nie ma czegoś takiego jak string. Napisy realizuje się za pomocą charów.

0

prosta tablica dwuwymiarowa która odnosi się do elementu

tb[i][j]
char tb[10][256];
    for(int i=0;i<10;i++)
       for(int j=0;j<256;j++)
         {
         }
0

2.Display that names in opposite order than they were given.

Miałem na myśli po wczytaniu imienia i nazwiska wczytać imie do pierwszego zbioru a nazwisko do drugiego. Wg mnie łatwiej zamienić miejscami przy wyświetlaniu. Ale pewnie się mylę ;)

0

Będę szczery :) Jak Dragon coś napisze to boję się to przeczytać bo wiem, że zaraz po mnie pojedzie :) i jak dla mnie wie co robi i mówi :)

Poczułem aluzję i przenośnię :) chcemy być wielkimi programistami a nie mamy wiedzy żeby nimi być. Piszemy na forum jak można coś poprawić a nie czytamy ze zrozumieniem. Więc prędzej coś przeczytam i będę na 100% pewien, że spotka to się z Twoją aprobatą :)

2
lisu1411 napisał(a):

2.Display that names in opposite order than they were given.

Miałem na myśli po wczytaniu imienia i nazwiska wczytać imie do pierwszego zbioru a nazwisko do drugiego. Wg mnie łatwiej zamienić miejscami przy wyświetlaniu. Ale pewnie się mylę ;)

Znaczy się, że co?

Przecież po zwykłym wczytaniu do tablicy wystarczy wyświetlić tym:

for(i=0;i < 10; i++)
{
    printf("%s\n", tb[10-i-1]);
}  

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.