In diesem Labor werden Sie:
#include <string.h>\0\0)Schreiben Sie ein Programm, das ein int-Array mit 5 Elementen erstellt, mit Werten initialisiert und folgendes ausgibt:
int zahlen[5] = {15, 22, 8, 31, 19};double durchschnitt = (double)summe / 5;Dateiname: array_stats.c
/* * array_stats.c * Grundlegende Array-Operationen: Ausgabe, Summe, Durchschnitt, Maximum */ #include <stdio.h> int main() { int zahlen[5] = {15, 22, 8, 31, 19}; int summe = 0; int maximum = zahlen[0]; // Array ausgeben printf("Array: "); for (int i = 0; i < 5; i++) { printf("%d ", zahlen[i]); summe += zahlen[i]; if (zahlen[i] > maximum) maximum = zahlen[i]; } double durchschnitt = (double)summe / 5; printf("\n\nSumme: %d\n", summe); printf("Durchschnitt: %.2lf\n", durchschnitt); printf("Maximum: %d\n", maximum); return 0; }
Schreiben Sie ein Programm, das:
double preise[3];scanf("%lf", &preise[i]);printf("%6.2lf Euro\n", preise[i]);Dateiname: preise_eingabe.c
/* * preise_eingabe.c * Einlesen von Preisen in ein Array und formatierte Ausgabe */ #include <stdio.h> int main() { double preise[3]; double summe = 0.0; // Preise einlesen for (int i = 0; i < 3; i++) { printf("Geben Sie Preis %d ein: ", i + 1); scanf("%lf", &preise[i]); } // Preise ausgeben printf("\nEingegebene Preise:\n"); for (int i = 0; i < 3; i++) { printf(" Preis %d: %6.2lf Euro\n", i + 1, preise[i]); summe += preise[i]; } printf("Gesamtsumme: %.2lf Euro\n", summe); return 0; }
Schreiben Sie ein Programm, das:
strlen() ermitteltstrcpy()#include <string.h>char name[31]; (30 Zeichen + \0)scanf("%s", name); (ohne &!)int laenge = strlen(name);strcpy(kopie, name);Dateiname: string_basics.c
/* * string_basics.c * Grundlegende String-Operationen mit strlen und strcpy */ #include <stdio.h> #include <string.h> int main() { char name[31]; char kopie[31]; printf("Geben Sie Ihren Namen ein: "); scanf("%s", name); // String kopieren strcpy(kopie, name); // Länge ermitteln int laenge = strlen(name); printf("\nOriginal: %s\n", name); printf("Kopie: %s\n", kopie); printf("Länge: %d Zeichen\n", laenge); return 0; }
Schreiben Sie ein Programm, das:
strcat() für die Verkettungstrcat(ziel, quelle) hängt quelle an ziel anDateiname: name_verkettung.c
/* * name_verkettung.c * String-Verkettung mit strcat() */ #include <stdio.h> #include <string.h> int main() { char vorname[31]; char nachname[31]; char vollstaendig[61] = ""; // Leerer String printf("Vorname: "); scanf("%s", vorname); printf("Nachname: "); scanf("%s", nachname); // Vorname in vollstaendig kopieren strcpy(vollstaendig, vorname); // Leerzeichen anhängen strcat(vollstaendig, " "); // Nachname anhängen strcat(vollstaendig, nachname); printf("\nVollständiger Name: %s\n", vollstaendig); return 0; }
Schreiben Sie ein einfaches Passwort-Programm:
strcmp()strcmp(str1, str2) gibt 0 zurück, wenn die Strings gleich sindif (strcmp(eingabe, passwort) == 0)Dateiname: passwort_check.c
/* * passwort_check.c * String-Vergleich mit strcmp() - mit Bonus (3 Versuche) */ #include <stdio.h> #include <string.h> int main() { char passwort[] = "geheim123"; char eingabe[51]; int versuche = 3; int erfolg = 0; while (versuche > 0 && !erfolg) { printf("Geben Sie das Passwort ein: "); scanf("%s", eingabe); if (strcmp(eingabe, passwort) == 0) { printf("Zugriff gewährt!\n"); erfolg = 1; } else { versuche--; if (versuche > 0) { printf("Zugriff verweigert! Noch %d Versuche.\n\n", versuche); } else { printf("Zugriff verweigert! Keine Versuche mehr.\n"); } } } return 0; }
Ohne die while-Schleife - nur eine einzige Abfrage mit if-else.
Schreiben Sie ein Programm zur Verwaltung einer kleinen Namensliste:
char namen[3][31];scanf("%s", namen[i]);printf("%-15s", namen[i]);printf("%15s", namen[i]);strlen(namen[i])Dateiname: namensliste.c
/* * namensliste.c * 2D-Array für mehrere Strings mit formatierter Ausgabe */ #include <stdio.h> #include <string.h> int main() { char namen[3][31]; // Namen einlesen for (int i = 0; i < 3; i++) { printf("Name %d: ", i + 1); scanf("%s", namen[i]); } // Linksbündig printf("\nNamensliste (linksbündig):\n"); for (int i = 0; i < 3; i++) { printf("%-15s (Länge: %d)\n", namen[i], (int)strlen(namen[i])); } // Rechtsbündig printf("\nNamensliste (rechtsbündig):\n"); for (int i = 0; i < 3; i++) { printf("%15s (Länge: %d)\n", namen[i], (int)strlen(namen[i])); } return 0; }
Erstellen Sie ein Programm zur Verwaltung von Produktdaten:
char produkte[3][31], int mengen[3], double preise[3]printf("%d %-15s %5d %7.2lf %7.2lf\n", ...)double gesamt = mengen[i] * preise[i];Dateiname: produktverwaltung.c
/* * produktverwaltung.c * Parallele Arrays für Produktverwaltung mit Benutzereingabe (Bonus) */ #include <stdio.h> #include <string.h> int main() { char produkte[3][31]; int mengen[3]; double preise[3]; double rechnungsSumme = 0.0; // Produktdaten einlesen (BONUS) for (int i = 0; i < 3; i++) { printf("Produkt %d:\n", i + 1); printf(" Name: "); scanf("%s", produkte[i]); printf(" Menge: "); scanf("%d", &mengen[i]); printf(" Preis: "); scanf("%lf", &preise[i]); printf("\n"); } // Tabellenkopf printf("Nr. Produkt Menge Preis Gesamt\n"); printf("--- -------------- ----- ------- -------\n"); // Tabellenzeilen for (int i = 0; i < 3; i++) { double gesamt = mengen[i] * preise[i]; printf("%d %-15s %5d %7.2lf %7.2lf\n", i + 1, produkte[i], mengen[i], preise[i], gesamt); rechnungsSumme += gesamt; } // Rechnungssumme printf(" -------\n"); printf("Rechnungssumme: %7.2lf\n", rechnungsSumme); return 0; }
Initialisieren Sie die Arrays direkt im Code:
char produkte[3][31] = {"Apfel", "Milch", "Brot"}; int mengen[3] = {2, 7, 3}; double preise[3] = {1.45, 0.85, 0.75};
Schreiben Sie ein Programm, das:
int zahlen[7] = {10, 20, 30, 40, 50, 60, 70};i=6 bis i>=0Dateiname: array_reverse.c
/* * array_reverse.c * Array-Elemente umkehren (in-place reverse) */ #include <stdio.h> int main() { int zahlen[7] = {10, 20, 30, 40, 50, 60, 70}; int temp; // Original ausgeben printf("Original: "); for (int i = 0; i < 7; i++) { printf("%d ", zahlen[i]); } printf("\n"); // Rückwärts ausgeben (ohne zu ändern) printf("Rückwärts: "); for (int i = 6; i >= 0; i--) { printf("%d ", zahlen[i]); } printf("\n"); // Array tatsächlich umkehren for (int i = 0; i < 3; i++) { temp = zahlen[i]; zahlen[i] = zahlen[6 - i]; zahlen[6 - i] = temp; } // Umgekehrtes Array ausgeben printf("Nach Umkehrung: "); for (int i = 0; i < 7; i++) { printf("%d ", zahlen[i]); } printf("\n"); return 0; }
Bei 7 Elementen (Indizes 0-6) tauschen wir:
Das mittlere Element (Index 3) bleibt an seiner Position.