Ошибка с условными операторами c, как решить?
Вы не разобрались с типами данных. int - число. Так что пользователь не введет ни васю ни петю. И сравнить число со строкой нельзя.
Тут целая куча ошибок, связанных с фундаментальным непониманием и тупой копипастой примеров.

1. В С нет строкового сравнения, оператор if (petyasa == "petya") некорректен.
2. scanf ("%d", &petyasya);
 введет код первого символа строки ('p' или 'v' в данном случае)

Хотя конечно код можно сделать рабочим даже не сильно его поменяв - ведь вводится-то 'p' или 'v' :)

#include <stdio.h>

int main () {
   int petyasya;

   printf ("petya or vasya");
   scanf ("%d", &petyasya);

   if (petyasya == 'p'){
      printf("vasya luche!");
   }else if (petyasya == 'v');
     printf("llooll");

   return 0;
}