Tabela uczniw w C

  • Rejestracja: dni
  • Ostatnio: dni
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");
} 
KR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2518
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");
} 
  • Rejestracja: dni
  • Ostatnio: dni
0

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

PO
  • Rejestracja: dni
  • Ostatnio: dni
  • 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;
} 
  • Rejestracja: dni
  • Ostatnio: dni
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)

  • Rejestracja: dni
  • Ostatnio: dni
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.