po pierwsze to masz złą deklarację danych - zadeklarowałeś pojedynczy znak (char imie) a trzeba zadeklarować tablicę znaków(char imie[20]) lub wskaźnik na znak (char * imie) Poza tym pamiętaj że takie nawiasy ' ' (pojedyncze) używaj tylko do pojedynczych liter, do ciągów znaków (stringów) muszą być " " potem przy sprawdzeniu wystarczy porównac funkcją int strcmp(char*,char*)
A tak w ogóle to dziwię się że prog się nie wykrzaczył, skoro podałeś w formacie argumentu string (wskaźnik na znak) a jako zmienną podałeś znak
Kod powinien wyglądać mniej więcej tak:
#include <string.h> //poczytaj o tej bibliotece
#include <stdlib.h> //dokładnie nie pamiętam , bo dawno nie pisałem w
//DOS ale jeżeli używasz funkcji scanf(), printf() to
//potrzeba 'zainkludować' :)
void main() //nie musisz pisać (void) w argumentach
{
char imie[20]; //ile znaków zadeklarujesz zależy od ciebie
printf("Podaj swoje imie: ");
scanf("%s",imie);
if (!strcmp(imie,"Piotr")) /funkcja strcmp (STRing CoMPare) zwraca 0 jeżeli oba łańcuchy są takie same ten zapis oznacza(jeżeli to co zwróciło jest równe zero) a poza tym w bibliotece string.h jest podobna funkcja w której jest jeszcze podział na małe lub wielkie litery może się przydać/
{
printf("Witaj szefie");
}
else
{
printf("Witaj kmiotku");
}
}
Pozdrawiam