Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Język C tablice

Ostatnio zmodyfikowano 2013-11-18 20:45
Autor Wiadomość
xkamilek69
Temat założony przez niniejszego użytkownika
Język C tablice
» 2013-11-18 12:27:59
Witam mam do napisania programik w którm przy pomocy tabliy tworze liste studentó, użytkownik podaj liczbe studentów i wypisuje ich imiona i nazwiska, następnie może wybrać dowolny wiersz i wyświetlić imię i nazwisko studenta.Nie wiem czy moje rozumowanie jest dobre, a poza tym kompilator wciąz wywala mi jakieś błedy, będę bardzo widzięczny za pomoc. O to mój programik:
C/C++
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main( int argc, char * argv[] ) {
   
    int i, p;
    int a;
    scanf( "%i", & a );
   
    float imie, nazw;
    char baza[ 10 ][ 2 ][ 20 ];
    printf( "Podaj liczbe studentow\n" );
    scanf( "%i", & a );
   
   
    for( i = 0; i < a; i++ )
    {
        printf( "Podaj: nazwisko \n" );
        scanf( "%s ", & baza[ i ].imie, );
        printf( "Podaj: imie\n" );
        scanf( "%s ", & baza[ i ].nazw );
       
    }
   
    for( i = 0; i < a; i++ )
         wysw( baza[ i ] );
   
    pritnf( "podaj numer wiersza" );
    scanf( "%d", p );
    if( p < 0 ) {
       
        printf( "nieprawidłowy numer wiersza" );
    }
    else
         printf( baza[ p ] );
   
    return 0;
}
P-96538
kampar
» 2013-11-18 14:24:37
C/C++
& baza.imie
& baza.nazw
wysw( baza );
Nie masz tego nigdzie zadeklarowanego
P-96541
xkamilek69
Temat założony przez niniejszego użytkownika
» 2013-11-18 14:28:16
we float mam imie i nazw, a baza to tablica, ale nie wiem. Jak coś tłumacz jak kompletnemu debilowi, bo prawdopodobnie inaczej nie zrozumiem.
P-96542
pekfos
» 2013-11-18 14:55:32
baza to nie tablica struktur, więc nie możesz użyć takiego zapisu. Poza tym %s wczytuje tekst, a nie float.
P-96546
f651144
» 2013-11-18 15:21:23
1. Formatowanie kodu! Zresztą, co ja się będę produkować? Od tego jest Wikipedia XD - http://pl.wikipedia.org/wiki​/Formatowanie_kodu.
2. Nazwy są po to, by NAZYWAŁY, a nie były kolejnymi literami alfabetu.
3. Dlaczego zakładasz, że liczba studentów nie przekroczy 10?
4. Wypisywanie kolejnych podpunktów nie ma sensu... Oto poprawiony kod:
C/C++
#include <stdio.h>  // printf, scanf
#include <stdlib.h> // system

/* run this program using the console pause or add your own getch, system("pause") or input loop */

int main()
{
    // Wszytywanie liczby studentów.
    int liczba_studentow;
    printf( "Podaj liczbe studentow: \n" );
    scanf( "%i", & liczba_studentow );
   
    // Tablica na dane
    char baza[ liczba_studentow ][ 2 ][ 20 ]; // "Cicho" zakładamy, że długość każdego z imion i nazwisk nie przekroczy 20.
   
    // Pobieramy dane
    for( int i = 0; i < liczba_studentow; i++ )
    {
        printf( "Podaj nazwisko studenta %i:\n", i + 1 );
        scanf( "%s", baza[ i ][ 0 ] );
        printf( "Podaj imie studenta %i:\n", i + 1 );
        scanf( "%s", baza[ i ][ 1 ] );
    }
   
    // Pobieramy numer studenta
    int wybrany_student;
    printf( "Podaj numer studenta: " );
    scanf( "%i", & wybrany_student );
   
    // Wyświetlamy dane studenta
    if( wybrany_student <= 0 || wybrany_student > liczba_studentow )
         printf( "\nNieprawidlowy numer." );
    else
    {
        printf( "\nNazwisko: " );
        printf( "%s", baza[ wybrany_student - 1 ][ 0 ] ); // Tak, a nie "printf(baza[wybrany_student-1][0]);" ze względów bezpieczeństwa!
        printf( "\nImie: " );
        printf( "%s", baza[ wybrany_student - 1 ][ 1 ] ); // Tak, a nie "printf(baza[wybrany_student-1][1]);" ze względów bezpieczeństwa!
    }
   
    printf( "\n\n" ); // Ładnie oddzielamy.
   
    // Zatrzymujemy, by było widać wynik.
    system( "pause" );
   
    return 0;
}

Przeanalizuj go i porównaj ze swoim.
Pozdrawiam i życzę miłej walki z tablicami! ;)
P-96552
xkamilek69
Temat założony przez niniejszego użytkownika
» 2013-11-18 20:45:17
Niezle naprawde niezle. Wielkie dzieki jesli moge sie jakos odwdzieczyc (jakies plusy czy cos) to nie ma sprawy.
P-96619
« 1 »
  Strona 1 z 1