buenas 
hice un programa que pide al usuario ingresar la edad para ver si puede votar . necesito hacer un tipo de validación para que el programa solo acepte números y si por error el usuario introduce un carácter le tire un mensaje de error y le pida de nuevo que introduzca la edad. tiene que ser en lenguaje C y uso devc++
este es el código
#include<stdio.h>
#include<conio.h>  
#include <stdlib.h>
int main() 
{
        int edad;
        int resp=1;
        
        while(resp==1)
        {
         
        printf("\n\t\t\t\tPRACTICA #1\n");
        printf("\n\t\tPrograma que permita capturar la edad e indique con un\n ");
        printf("\t\t  mensaje en pantalla si la persona puede votar o no.\n\n");
        
        printf("\n  INGRESE LA EDAD: ");
        scanf("%d",&edad);
         
      
        
        if(edad>=18){
        printf("\n <<EL USUARIO PUEDE VOTAR>>\n");
        }
        
        if((edad>0)&&(edad<18)) {
        printf("\n << EL USUARIO NO PUEDE VOTAR>>\n");
        }
        
        if (edad<0){
        printf("\t\n<<ERROR>>OPCION INVALIDA\n\n ");
        }
        
        printf("\nSi desea repetir teclee 1, si desea salir teclee 0\n");
        scanf("%d", &resp);
        
        while (( resp !=1) && (resp !=0 ))
      {
          printf("\n<<opcion invalida>>\n");
          printf("\nSi desea repetir teclee 1, si desea salir teclee 0\n");
          scanf( "%d", &resp);
      }
        
        if (resp==0){
        exit(0);
        }
        else if (resp == 1){
          resp=1;
      }
        
        system("cls");  
        }
        getch();
        
}
gracias de antemano
			
			
			
				Lo que puedes hacer es leer la edad a un array de caracteres, y después uno a uno haces esta comprobación:
if(edad[0] >= 0 && edad[0] <= 9)
Cuando tengas comprobado que todos son números, lo pasas a int y listo.
			
			
			
				Puedes controlar si lo que te pasan son números o letras con código ASCII , si están dentro de un rango son números y sino son caracteres u otra cosa.
http://www.elcodigoascii.com.ar/codigo-americano-estandar-intercambio-informacion/codigo-ascii.gif 
			
			
			
				hice lo que me recomendaste pero ahora  tengo un problema y  es que quiero que si el usuario introduzca 18 le salga puede votar, 
o sea que entre al if en donde esta la condicion de que si puede votar o no
es que no entra a ese if
lo hice asi 
#include<stdio.h>
#include<conio.h>  
#include <stdlib.h>
int main() 
{
        char edad[0];
        int resp=1,valida=1;
        
        while(resp==1)
        {
                      
         do{
         valida=1;
        printf("\n\t\t\t\tPRACTICA #1\n");
        printf("\n\t\tPrograma que permita capturar la edad e indique con un\n ");
        printf("\t\t  mensaje en pantalla si la persona puede votar o no.\n\n");
        
        printf("\n  INGRESE LA EDAD: ");
        scanf("%s",edad);
         
       if(edad[0]<'0')
       valida=0;
       if(edad[0]>'9')
       valida=0;
       if(valida==0){
       printf("ERROR<<OPCION INVALIDA>>.\n");
       }
       {
       system("cls");}
       }while(valida=1);          
              
      
         
      
        
        if(edad[0]>=18){
        printf("\n <<EL USUARIO PUEDE VOTAR>>\n");
        }
        
        if((edad[0]>0)&&(edad[0]<18)) {
        printf("\n << EL USUARIO NO PUEDE VOTAR>>\n");
        }
        
        if (edad[0]<0){
        printf("\t\n<<ERROR>>OPCION INVALIDA\n\n ");
        }
        
        printf("\nSi desea repetir teclee 1, si desea salir teclee 0\n");
        scanf("%d", &resp);
        
        while (( resp !=1) && (resp !=0 ))
      {
          printf("\n<<opcion invalida>>\n");
          printf("\nSi desea repetir teclee 1, si desea salir teclee 0\n");
          scanf( "%d", &resp);
      }
        
        if (resp==0){
        exit(0);
        }
        else if (resp == 1){
          resp=1;
      }
        
        system("cls");  
        }
        getch();
        
}
 gracias
			
			
			
				La declaración del array:
char edad[0];
No es valida ya que se debe indicar el numero de elementos mediante una expresión de tipo entero (short, int , etc.) mayor que cero. Y se recomienda evitar el uso de la biblioteca conio de Borland, mas información en el tema |Lo que no hay que hacer en C/C++. Nivel basico| (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html).
Para validar la entrada debes verificar el valor de retorno de la función "scanf", esta indica el numero de conversiones con éxito. Un ejemplo de su uso:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   int num;
   int rv;
   int ch;
   
   while (1){
      printf("Numero: ");
      fflush(stdout);
      if ((rv = scanf("%d", &num)) == EOF)
         return EXIT_FAILURE;
      else if (rv == 1)
         break;
      
      while ((ch = getchar()) != EOF && ch != '\n')
         ;
   }
   
   printf("El numero es %d\n", num);
   
   return EXIT_SUCCESS;
}
Un saludo
			
			
			
				buenas de nuevo
ahora si que el programa esta ya casi cocido pero tengo un pequeño problema es que en la parte
else if (edad[0]>0 && edad[0]<18){ 
printf("\n << EL USUARIO NO PUEDE VOTAR>>\n");
}
 no me entra si no que sale que el usuario puede votar,para ver si me pueden ayudar o decirme cual es el error. gracias
este es el codigo completo
#include<stdio.h>
#include<conio.h>  
#include <stdlib.h>
int main() 
{
        char edad[0];
        int resp=1;
        
        while(resp==1)
        {
         
        printf("\n\t\t\t\tPRACTICA #1\n");
        printf("\n\t\tPrograma que permita capturar la edad e indique con un\n ");
        printf("\t\t  mensaje en pantalla si la persona puede votar o no.\n\n");
        
        printf("ingrese numero: ");
scanf("%s", edad);
if((edad[0]>='a' && edad[0]<='z')||(edad[0]>='A' && edad[0]<='Z')){
printf("\n ESTE NO ES NUMERO\n\n");
}
else if (edad[0]=='-'){
printf("\n ES UN NUMERO pero no es POSITIVO\n\n ");
}
else if(edad[0]>=18){
printf("\n <<EL USUARIO PUEDE VOTAR>>\n");
}
else if (edad[0]>0 && edad[0]<18){ 
printf("\n << EL USUARIO NO PUEDE VOTAR>>\n");
}
        
        printf("\nSi desea repetir teclee 1, si desea salir teclee 0\n");
        scanf("%d", &resp);
        
        while (( resp !=1) && (resp !=0 ))
      {
          printf("\n<<opcion invalida>>\n");
          printf("\nSi desea repetir teclee 1, si desea salir teclee 0\n");
          scanf( "%d", &resp);
      }
        
        if (resp==0){
        exit(0);
        }
        else if (resp == 1){
          resp=1;
      }
        
        system("cls");  
        }
        getch();
        
}