RSS-Feed

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", &note) != 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;
  }
}

Ultimative Emacs Cheat Sheet Übersicht

von Kai um 14:17 am Samstag, 31. Oktober 2009 in Produktivität, Studium | 1 Kommentar

emacsCheatSheetNotgedrungen aus dem Umstand, dass ich mir für das Studium momentan den Emacs Editor anschauen muss, habe ich mir die Mühe gemacht, eine kleine Überlebenshilfe zu basteln. (Auch wenn ich Vim selbstverständlich viel besser finde ;-) )
Die Infos auf dem DIN A5 großen Blatt habe ich mir quer durchs Internet zusammengesucht.

Der Verweis über das Vorschaubild führt zum Original und damit zur vollen Auflösung von 300 DPI. Viel Spaß damit.