C :: Aufgabe #87
2 Lösungen

Das Array-Telefonbuch
Anfänger - C
von Energy
- 17.08.2015 um 15:11 Uhr
Erstelle ein mehrdimensionales Array, in der 5 Datensätze gespeichert werden. Es soll eine Festnetznummer, eine Handynummer und eine Geschäftliche Telefonnummer in der Konsole eingegeben werden. Nach der Eingabe soll die Konsole geleert und die Nummern ausgegeben werden. Bei der Ein- sowie Ausgabe soll eine laufende Eintragsnummer angezeigt werden.
Lösungen:

/* * mainTel.c * * Created on: 09.11.2015 * Author: schlemiel */ #include <stdio.h> #define MAX 20 struct telefonbuch { int id; char fest[MAX]; char mobil[MAX]; char buero[MAX]; } tel[5]; void eingabe(){ for(int i = 0; i < 5; i++) { printf("%d. Datensatz eingeben!\n", i+1); tel[i].id=i+1; printf("Bitte Festnetznummer eingeben: \n"); fgets(tel[i].fest, MAX, stdin); printf("Bitte Mobilnummer eingeben: \n"); fgets(tel[i].mobil, MAX, stdin); printf("Bitte Büronummer eingeben: \n"); fgets(tel[i].buero, MAX, stdin); } } void loeschen(){ printf("\033[2J"); printf("\033[1;1H"); } void titel() { printf("=====================\n"); printf(" Telefonbuch\n"); printf("=====================\n"); } void ausgabe(){ titel(); for(int i = 0; i < 5; i++) { printf("%d. Fest: %s Mobil: %s Büro: %s\n", tel[i].id, tel[i].fest, tel[i].mobil, tel[i].buero); } } int main() { loeschen(); titel(); eingabe(); loeschen(); ausgabe(); return 0; }

/********************************* * telbuch.c Array-Telefonbuch *********************************/ #include <stdlib.h> #include <stdio.h> #include <string.h> #include <limits.h> /* Anzahl Datensaetze */ #define REC_ANZ 5 /* Anzahl Nummern */ #define NUM_ANZ 3 /* max. Laenge Nummer */ #define NUM_LEN 20 const char telnum_type[][16] = { "Festnetznummer ", "Handynummer ", "Geschaeftlich " }; char telefon_buch[REC_ANZ][NUM_ANZ][NUM_LEN+1]; int main(void) { char buffer[LINE_MAX]; int nrec, nnum; /* EINGABE */ for (nrec=0; nrec<REC_ANZ; nrec++) { printf("\nDatensatz #%d eingeben:\n", nrec+1); for (nnum=0; nnum<NUM_ANZ; nnum++) { printf("%s: ", telnum_type[nnum]); scanf("%s", buffer); strncpy(telefon_buch[nrec][nnum], buffer, NUM_LEN); telefon_buch[nrec][nnum][NUM_LEN] = 0; } } /* clear screen OS-spezifisch! */ system("clear"); /* AUSGABE */ for (nrec=0; nrec<REC_ANZ; nrec++) { printf("\nDatensatz #%d:\n", nrec+1); for (nnum=0; nnum<NUM_ANZ; nnum++) printf("%s : %s\n", telnum_type[nnum], telefon_buch[nrec][nnum]); } return 0; }