Hola, bueno primero que nada deja te recuerdo que cuando trabajas con caracteres tienes que colocar ' ' si es un solo caracter o " " si es una cadena, asi que ahi esta un primer error en tus definiciones, despues estas "metiendo" el ingreso del valor del caracter "opc" en cadena cuando solo podrias "meterlo" como caracter, y en el caso de las condiciones solo es valido "==" cuando solo comparas caracteres y ya si metes cadena deberas usar las funciones propias de una libreria de cadenas de caracteres (string.h por ejemplo) o es dado caso como este que es un caracter comparado con una cadena, podrias meter un ciclo y asi comporarlo con cada elemento de tu cadena "base", me tome la libertad de modificar tu codigo y llegue a la siguiente solucion usando la ultima metodologia mencionada...
#include <stdio.h>
#include <conio.h> //Agrege Conio para poder hacer una pausa en el programa
// con getch()
#define vocal "aeiou" // Agrague comillas a las constantes
#define numero "0123456789" // y en vez de ser esta numerica se ve
#define consonante "bcdfghjklmnpqrstvwxyz" //como cadena de caracteres
int main()
{
int i; //variable de control de ciclos
char opc;
printf("Introduce un numero o una letra: \n");
scanf("%c",&opc);
for(i = 0 ; i < 5 ; i++){ //ciclo para averiguar si es vocal
if(opc == vocal[i])
printf("Es una vocal");
}
for(i = 0 ; i < 10 ; i++){ //ciclo para averiguar si es un numero
if(opc == numero[i])
printf("Es un numero");
}
for(i = 0 ; i < 21 ; i++){ //ciclo para averiguar si es constante
if(opc == consonante[i])
printf("Es una consonante");
}
getch(); //pausa
return 0; //ya que es un int main, debemos regresar un valor
}
espero que te sirva y que me haya explicado lo suficientemente bien *-*...
Sei ya