Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ayuda con cadenas..

Estas en el tema de ayuda con cadenas.. en el foro de C/C++ en Foros del Web. Hola, a todos el ejercicio es el siguiente: Introducir una cadena de caracteres que contenga números únicamente y convertirla a entero y dividirla por el ...
  #1 (permalink)  
Antiguo 21/03/2010, 07:06
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
ayuda con cadenas..

Hola,
a todos el ejercicio es el siguiente:

Introducir una cadena de caracteres que contenga números únicamente y convertirla
a entero y dividirla por el valor de un entero introducido posteriormente por teclado. Antes de finalizar se visualizará el resultado obtenido.
Nota: Convierte a entero o entero largo según la longitud de la cadena y ten cuidado con los posibles decimales.*/

lo tengo hecho mas o menos,me ejecuta perono se como modificarlo para tomar en cuenta si lo introducido por el usuario no son numeros,por lo de "introducir una cadena de caracteres que contenga numeros unicamente"

necesito vuestra ayuda chicos,estare en linea..
Saludos y gracias de antemano.


Código C:
Ver original
  1. #include<stdio.h>
  2.  #include<stdlib.h>
  3.  #include<string.h>
  4.  #include<ctype.h>
  5.  
  6.  void main(){
  7.  
  8.   char cadena[12];
  9.   int num,n,aux;
  10.   float div;
  11.  
  12.   printf("introduce la cadena de caracteres numericos\n");
  13.   gets(cadena);
  14.  
  15.     aux=strlen(cadena);      //longitud de la cadena
  16.                   for(aux=0;aux<12;aux++){
  17.                                       if(isdigit(cadena[aux])){
  18.  
  19.  
  20.                                               if(aux<7){   //int..32.768 hasta 32.767
  21.                                               n=atoi(cadena);
  22.                                               }
  23.                                              else {
  24.                                               n=atol(cadena);
  25.                                               }
  26.                                               }
  27.                                              }
  28.  
  29.  
  30.  
  31.                                             printf("inserte un numero:\n");
  32.                                             scanf("%i",&num);
  33.  
  34.                                             div=(n/num);
  35.                                             printf("El resultado de la division entre %s y %i es %0.2f",cadena,num,div);
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  }



En relacion a lo indicado en el enunciado " Convierte a entero o entero largo según la longitud de la cadena " no estoy segura de si lo hago correctamente..,

Última edición por roser24; 21/03/2010 a las 07:21
  #2 (permalink)  
Antiguo 24/03/2010, 00:24
Avatar de sadalsuud  
Fecha de Ingreso: marzo-2010
Ubicación: en la casa del duende
Mensajes: 96
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: ayuda con cadenas..

hola ... copíe tu codigo y lo corrí en mi PC y pues la funcion main no debería ser void, puede estar void pero no es recomendable, es mejor que sea int y al final de todas las instrucciones retorne cero.

Por otro lado, el compilador me recomienda no usar gets() porque esa funcion no tiene control interno y es mejor no acustumbrarse a usarla ;) así en programas mas grandes no tienes dolores de cabeza cuando "todo está bien" en el codigo.

Ahora, ya corriendo el programa ignorando la advertencia del uso de gets().
El programa corré bien ... organiza mejor la identacion de tu código para que sea mas legible.

ciao
  #3 (permalink)  
Antiguo 25/03/2010, 08:46
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: ayuda con cadenas..

Hola,gracias por responder Salalsuud,pero mi duda mas que nada es con respecto a si plantee bien en el codigo lo que se indica en el enunciado del ejercicio:
Convierte a entero o entero largo según la longitud de la cadena y ten cuidado con los posibles decimales.*/
...

Salu2

Etiquetas: cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:22.