• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Struktury. Program nie chce wyczytac danych pobranych od użytkownika

0 głosów
227 wizyt
pytanie zadane 24 maja 2018 w C i C++ przez zxcv Nowicjusz (150 p.)
edycja 24 maja 2018 przez Arkadiusz Waluk
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
struct dane
{
  char *imie;
  char *nazw;
  int nr;
};
int main ()
{
  int i,n;
  struct dane t[n];

printf("ile osob");
scanf("%d",&n);

for(i=0;i<n;i++)
{
printf("Podaj imie");
scanf("%s",t[i].imie);
printf("Podaj nazwisko");
scanf("%s",&t[i].nazw);
printf("Podaj numer");
scanf("%d",&t[i].nr);
}
printf("Imie    nazwisko     nr \n");

for(i=0;i<n;i++)
{
printf("%s",t[i].imie);
printf("%s",t[i].nazw);
printf("%d",t[i].nr);
}

return 0;
}

2 odpowiedzi

0 głosów
odpowiedź 25 maja 2018 przez Qwerty96 Stary wyjadacz (13,580 p.)
wybrane 25 maja 2018 przez zxcv
 
Najlepsza
scanf("%s",t[i].imie);

I na co ten wskaźnik wskazuje? Albo zaalokuj potrzebną pamięć i przypisz ją do wskaźników w strukturze, albo zamień w definicji struktury wskaźniki na tablice.

komentarz 25 maja 2018 przez zxcv Nowicjusz (150 p.)
Już działa, dziękuje :)
0 głosów
odpowiedź 24 maja 2018 przez k222 Nałogowiec (30,150 p.)

Z tego co widzę to najpierw tworzysz tablicę o wielkości n a dopiero potem podajesz to n

struct dane t[n];
 
printf("ile osob");
scanf("%d",&n);

i tu już jest poważny błąd

komentarz 24 maja 2018 przez zxcv Nowicjusz (150 p.)
Właśnie nawet jeżeli najpierw podam n, a później tworze tablice to program zatrzymuje sie w tym samym miejscu. Wczytuje wszystkie dane jednak nie chce juz ich sprowrotem wyczytać w kolejnej pętli

Podobne pytania

0 głosów
0 odpowiedzi 3,990 wizyt
0 głosów
2 odpowiedzi 310 wizyt
pytanie zadane 18 października 2018 w C# przez Michał Flisikowski Początkujący (370 p.)

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,328 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...