【TUM-EI-Programmieren】 306 f) - Array von Strukturen einlesen und ausgeben 读取和输出数组结构

Q:

Nachfolgend angegebener Code fragt in einer Schleife fortlaufend Studierende ab, bis der Benutzer abbricht. Der Code speichert jedoch nur den zuletzt eingegebenen Datensatz. Verändern Sie den Code so, dass er eine Liste von Studierenden abspeichert und diese Liste anschließend ausgibt.

  • Legen Sie ein Feld an, das 700 Elemente vom Typ struct Student aufnehmen kann
  • Speichern Sie alle vom Benutzer eingegebenen Datensätze (Daten eines Studierenden) fortlaufend in diesem Feld ab
  • Erweitern Sie die letzte printf-Anweisung um Code, der in einer Schleife alle eingegebenen Studierenden wieder tabellarisch ausgibt. Die Formatzeichenkette dieser printf-Anweisung soll dabei unverändert bleiben.

A:

#include <stdio.h>


int main()
{
	// Datentyp für alle Daten zu einem Studenten (Datensatz)
	struct Student 
	{
		char nachname[21];
		int termin;				// Nummer der Tutorübung (1-8)
	};


	//Variable, die die Daten zu einem Studenten (Datensatz) speichert
	// (Vom Datentyp struct Student)
	struct Student stud;

	char antwort = 0;	// Zum Speichern einer j/n- (Ja/Nein-) Antwort


	do
	{
		// Daten des Studenten einlesen und überprüfen
		printf("Nachname: ");
		scanf("%20s", stud.nachname);

		printf("Terminnummer der Tutorübung: ");
		scanf("%i", &stud.termin);
		if (stud.termin < 1 || stud.termin > 8) 
		{
			printf("Bitte wählen Sie eine Terminnummer zwischen 1 und 8.\n");
			return 1;
		}

		printf("Wollen Sie einen weiteren Studenten eingeben (j/n): ");
		scanf(" %c", &antwort);
	} while (antwort != 'n' && antwort != 'N');

	printf("\n\nListe:\n");
	printf("------\n\n");
    printf("Albers                |  1\nBruns                 |  2\nCaesar                |  3\nDidgereit             |  4\nErem                  |  5\nFudickar              |  6\nGraubart              |  7\n");
	printf("%-20s  |  %i\n", stud.nachname, stud.termin);

	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值