podział na min. 3 pliki (main (.c), header (.h), funkcje(.c)),
- operacje na wskaźnikach,
- operacje wejścia i wyjścia,
- zdefiniowanie kilku funkcji (funkcje obliczeniowe nie komunikują się z użytkownikiem),
- zdefiniowanie przynajmniej 1 macro funkcyjnego,
- jakieś nietrywialne obliczenia liczbowe,
- (opcjonalnie) operacje na ciągach znakowych,
- wszystkie stałe mają być stałymi symbolicznymi,
- logika oddzielona od obliczeń i interfejsu,
- program może być prosty