Tabela uczniw w C

Tabela uczniw w C
0

Chcę stworzyć w C tabelę zawierającą i wyświetlającą uczniów. Użytkownik najpierw wprowadza dane, które sa później wyświetlane. Co muszę dorobić do mojego kodu, żeby wszystko dobrze działało.

Kopiuj
#include<stdio.h>
#include<stdlib.h>
#define ilosc 100

main()
{
	int rozmiar,a,b;
	
	char dane[ilosc];
	char imie[20];
	char nazw[20];
	printf("Podaj ilosc uczniow, ktorych chcesz dodac do bazy\n");
	scanf("%d",&rozmiar);
	for (a=1;a<=rozmiar;a++)
	{
		printf("Podaj imie oraz nazwisko:\n");
		scanf("%s %s",imie,nazw);
		printf("\n");
						
	}
	for(a=1; a<=rozmiar; a++)
	{
	printf("uczen [%d] = %s %s\n", a, imie, nazw);
	}
	system("pause");
} 
edytowany 1x, ostatnio: madmike
KR
  • Rejestracja:prawie 16 lat
  • Ostatnio:6 miesięcy
  • Postów:2514
0

na oko tylko tyle wystarczy zmienić:

Kopiuj
#include<stdio.h>
#include<stdlib.h>
#define ilosc 100
#define MAXDLUGOSC 100
 
main()
{
        int rozmiar,a,b;
 
        char dane[][ilosc];
        char imie[20][MAXDLUGOSC];
        char nazw[20][MAXDLUGOSC];
        printf("Podaj ilosc uczniow, ktorych chcesz dodac do bazy\n");
        scanf("%d",&rozmiar);
        for (a=0;a<rozmiar;a++)
        {
                printf("Podaj imie oraz nazwisko:\n");
                scanf("%s%s",imie[a],nazw[a]);
                printf("\n");
 
        }
        for(a=0; a<rozmiar; a++)
        {
        printf("uczen [%d] = %s %s\n", a, imie[a], nazw[a]);
        }
        system("pause");
} 

░█░█░█░█░█░█░█░█░█░█░█░
edytowany 2x, ostatnio: krwq
Patryk27
A nie "char * imie[20];"?
KR
racja, nawet tego nie zauważyłem :P już poprawiam...
0

Wtedy po wprowadzeniu uczniów wyrzuca program(break), czyli w momencie, gdy program chce wypisać wprowadzonych uczniow

PO
  • Rejestracja:ponad 14 lat
  • Ostatnio:około 3 lata
  • Postów:211
0

jak na moje oko, to źle wczytujesz imię i nazwisko, to jest tablica charów (znaków) jak chcesz wczytać ciąg znaków musisz zrobić z tego dwuwymiarową tablicę. Chyba ze imię i nazwisko będą miały po jednym znaku to wtedy tak.

Ja bym zrobił to w ten sposób:

Kopiuj
#include<stdio.h>
#include<stdlib.h>
#define ilosc 100
 
int main(){
        int rozmiar,a,b;
 
        char dane[ilosc];
        char imie[ilosc][20];
        char nazw[ilosc][20];
        printf("Podaj ilosc uczniow, ktorych chcesz dodac do bazy\n");
        scanf("%d",&rozmiar);
        for (a=0;a<rozmiar;a++)
        {
                printf("Podaj imie oraz nazwisko:\n");
                scanf("%s %s",imie[a],nazw[a]);
                printf("\n");
 
        }
        for(a=0; a<rozmiar; a++)
        {
        printf("uczen [%d] = %s %s\n", a, imie[a], nazw[a]);
        }
        system("pause");

		return 0;
} 
edytowany 1x, ostatnio: porschelukas
0

A jak przejść do następnej linii w tej dwuwymiarowej tablicy, bo jak ja zechcę podać 2 lub więcej uczniów, to ostatecznie program wyświetli tylko jednego(ostatnio podanego)

0

porschelukas, dzięki wielkie, teraz wszystko działa jak należy

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.