Wskaźniki do tablicy struktur w języku C

0

witam podawałem już te zadanie ale okazało się że musze je zrobić w języku C a nie w paskalu .
zadanie:
Utworzyć tablicę (np. 4 elementy) Struktur zawierających imiona (tablica char) i numery telefonów (zmienna long). Przejrzeć tablicę metodą bezpośrednią (operator kropki) i pośrednią korzystając ze wskaźnika.

Zrobiłem go dwiema metodami ale proszę o sprawdzenie ponieważ nie jestem pewny czy dobrze.

 

#include <stdio.h>
#include <string.h>
struct dane
{
 char imie[10];
 long tel[3999999];      
       };
struct dane osoba[4];
struct dane *tosoba[4];   
  main() 
{   
int x;
printf("      ---Podaj imiona i telefony osob--- \n");
for (x=0; x<4;x++)
{
printf("\nOsoba nrmer: %d\n",x+1);      
puts("Podaj imie: ");
scanf("%s",osoba[x].imie);
puts("Podaj telefon: ");
scanf("\n%d",osoba[x].tel);
}
printf("\n");
printf("Metoda bezposrednia\n\n");
getchar( );
for (x=0; x<4; x++)
printf("Osoba nr: %d imie: %s telefon: %d \n",x+1 ,osoba[x].imie, *osoba[x].tel);

struct dane *tosoba[4];   
tosoba[x]=&osoba[x];
printf("\n---Wcisnij enter aby przejzec metoda posrednia---\n");

printf("\n");
getchar( );
for (x=0; x<4; x++){
 tosoba[x]=&osoba[x];
printf("Osoba nr: %d Imie: %s telefon: %d \n", x+1, (*tosoba[x]).imie, *(*tosoba[x]).tel);
}
getchar( );
return 0;
}


Program jest zrobiony w Dev C++ 4.9.9.2

0
hiob21 napisał(a)

witam podawałem już te zadanie ale okazało się że musze je zrobić w języku C a nie w paskalu .
zadanie:
Utworzyć tablicę (np. 4 elementy) Struktur zawierających imiona (tablica char) i numery telefonów (zmienna long). Przejrzeć tablicę metodą bezpośrednią (operator kropki) i pośrednią korzystając ze wskaźnika.

Zrobiłem go dwiema metodami ale proszę o sprawdzenie ponieważ nie jestem pewny czy dobrze.

 

[ciach]

Program jest zrobiony w Dev C++ 4.9.9.2

Jak nie wiesz czy dobrze to sobie skompiluj i odpal. Tak na marginesie to nie używaj DevC++. Dlaczego jeszcze w naszym pięknym kraju to przestarzałe środowisko jest tak popularne. Polecam CodeBlocks: codeblocks.org

0

No dobra wiem że się kompiluje i odpalam program bo chyba go pisałem....:) ale czy to jest dobra metoda czy tak wygląda pośrednia czy nie??? prosze o odpowiedz

0

Eee, raczej chodzi o to, by raz korzystać z kropki, a raz ze strzałki.

0

Szkoda słów do tego kodu...

#include <stdio.h>
#include <string.h>

struct dane
{
    char imie[100];
    unsigned int tel;
};

int main()
{
    struct dane osoba[4];
    int i;
    printf("      ---Podaj imiona i telefony osob--- \n");
    for (i=0; i<4; i++)
    {
        printf("\nOsoba nrmer: %d\n",i+1);
        puts("Podaj imie: ");
        scanf("%s",osoba[i].imie);
        puts("Podaj telefon: ");
        scanf("\n%d",&(osoba[i].tel));
    }
    printf("Metoda bezposrednia\n\n");
    getchar();
    for (i=0; i<4; i++){
        printf("Osoba nr: %d imie: %s telefon: %d \n",i+1 ,osoba[i].imie, osoba[i].tel);
    }

    printf("\n---Wcisnij enter aby przejzec metoda posrednia---\n");
    getchar();
    struct dane* wskaznikDoOsoby = osoba;
    for (i=0; i<4; i++)
    {
        printf("Osoba nr: %d Imie: %s telefon: %d \n", i+1, wskaznikDoOsoby->imie,wskaznikDoOsoby->tel);
        wskaznikDoOsoby++;
    }
    getchar( );
    return 0;
}
0

Dzięki za podpowiedz nigdy bym na to nie wpadł:)

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