Onlinetest in C
von Kai um 19:19 am Montag, 23. November 2009 in Programmiersprachen, Studium | 0 Kommentare
Heute fand nach sechswöchiger Einführung in C in dem Modul “Programmieren 3″ der Onlinetest in C statt. Nächste Woche gehts dann mit einer Einführung in Python weiter.
Da ich mir mittlerweile meiner akuten Prüfungsangst und der damit einhergehenden Blackouteritis bewusst bin, gehe ich davon aus, dass ich nur knapp bestanden hab, obwohl (zumindest die ersten beiden Aufgaben) nicht so schwer waren.
Nachfolgend nun die ersten beiden Aufgaben des Onlinetests. Die dritte Aufgabe reiche ich wie schonmal nach, sobald mein Kopf nicht mehr ganz so matschig ist.
Aufgabe 1
* Aufgabe: Es werden Noten (Note '1' bis Note '6') *
* auf der Kommandozeile eingegeben. Als Ausgabe *
* erscheint dann die Summe der einzeln eingegeben- *
* en Noten *
****************************************************/
#include <stdio.h>
int main(void) {
int n1=0,n2=0,n3=0,n4=0,n5=0,n6=0;
int note;
while(scanf("%d", ¬e) != EOF) {
switch (note) {
case 1:
n1++;
break;
case 2:
n2++;
break;
case 3:
n3++;
break;
case 4:
n4++;
break;
case 5:
n5++;
break;
case 6:
n6++;
break;
}
}
printf("Note 1: %d mal\n", n1);
printf("Note 2: %d mal\n", n2);
printf("Note 3: %d mal\n", n3);
printf("Note 4: %d mal\n", n4);
printf("Note 5: %d mal\n", n5);
printf("Note 6: %d mal\n", n6);
}
Aufgabe 2
* Aufgabe: Versehentlich wurden einige Lottozahlen *
* doppelt gezogen. Es soll eine beliebige Reihe *
* von Zahlen auf der Kommandozeile eingegeben und *
* die doppelt vorkommenden Zahlen geklammert *
* werden *
****************************************************/
#include <stdio.h>
#include <assert.h>
typedef struct zahlen {
int zahl;
struct zahlen *next;
} Zahl;
Zahl *neueZahl(void) {
Zahl *z;
z = malloc(sizeof(Zahl));
assert(z);
z->zahl = 0;
z->next = NULL;
return z;
}
Zahl *start;
Zahl *tmp;
int main(void) {
int eingabe;
int erstesMal = 0;
while(scanf("%d", &eingabe) != EOF) {
if(erstesMal == 0) {
Zahl *neu = neueZahl();
neu->zahl = eingabe;
neu->next = NULL;
start = neu;
tmp = neu;
erstesMal = 1;
} else {
Zahl *neu = neueZahl();
neu->zahl = eingabe;
tmp->next = neu;
tmp = neu;
}
}
printf("%d ",start->zahl);
tmp = start->next;
while(tmp != NULL) {
if(start->zahl == tmp->zahl) {
printf("[%d] ",tmp->zahl);
} else {
printf("%d ",tmp->zahl);
}
start = tmp;
tmp = start->next;
}
}




