ayúdenme programa que cuente los espacios en blaco que hay

Iniciado por carlosbds4, 2 Diciembre 2012, 16:29 PM

0 Miembros y 1 Visitante están viendo este tema.

carlosbds4

hola necesito un programa que me diga cuantos espacios en blanco hay en una frase por ejemplo

hola me llamo carlos
son 4 espacios en blanco
pero no me sale :( me pordrian ayudar esto es lo k llevo

#include <stdio.h>

/* cuenta dígitos espacios blancos*/
main()
{
  int c, i, nwhite, nother;
  int ndigit[19];

  nwhite = nother = 0;
  for (i = 0; i < 10; ++i)
    ndigit = 0;
  while ((c = getchar()) != EOF)
    if (c >= '0' && c <= '9')
      ++ndigit[c-'0'];
    else if (c == ' ' || c == '\n'
      || c == '\t')
      ++nwhite;
    else
      ++nother;
  printf ("dígitos =");
  for (i = 0; i < 10; ++i)
          printf(" %d", ndigit);
      printf(", espacios blancos = %d, otros = %d\n", nwhite, nother);
}

avesudra

#1
Hola carlosbds4 , la lógica de tu programa está perfecta , sólo que tenías un error en la línea 11, antes la tenías así:

ndigit = 0; Y la correcta es así:#include <stdio.h>

/* cuenta dígitos espacios blancos*/
int main()
{
   int c, i, nwhite, nother;
   int ndigit[19];

   nwhite = nother = 0;
   for (i = 0; i < 10; ++i)
       ndigit[i] = 0;
   while ((c = getchar()) != EOF)
       if (c >= '0' && c <= '9')
           ++ndigit[c-'0'];
       else if (c == ' ' || c == '\n'
                || c == '\t')
           ++nwhite;
       else
           ++nother;
   printf ("dígitos =");
   for (i = 0; i < 10; ++i)
       printf(" %d", ndigit);
   printf(", espacios blancos = %d, otros = %d\n", nwhite, nother);
}
Regístrate en

rir3760

#2
Cita de: avesudra en  2 Diciembre 2012, 16:46 PM
Hola carlosbds4 , la lógica de tu programa está perfecta , sólo que tenías un error en la línea 11
Esa sentencia esta bien, no se ve porque no utilizo las etiquetas de código y por ello el texto aparece en cursiva.

----

Cita de: carlosbds4 en  2 Diciembre 2012, 16:29 PM
hola necesito un programa que me diga cuantos espacios en blanco hay en una frase por ejemplo

hola me llamo carlos
son 4 espacios en blanco
pero no me sale :( me pordrian ayudar esto es lo k llevo
No quiero sonar grosero pero ese programa es uno de los primeros ejemplos del libro "The C Programming Language".

Supongamos por un momento que, por alguna extraña coincidencia, tu terminas con el mismo programa. Bueno, si lo hiciste tu debes saber muy bien como cuenta los caracteres porque ... los cuenta correctamente. Las modificaciones para contar solo las ocurrencias del carácter ' ' son menores.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

carlosbds4

no sabia de se libro XD pero dime como hacer el porgrama plizz

leosansan

Código (cpp) [Seleccionar]
#include <stdio.h>
main()
{
    int i=0,n=0;
    char cadena [256];
    printf ("Escriba la frase: ");
    fgets (cadena,256,stdin);
    while (cadena[i++]!='\0'){
        if (cadena[i]==' ') n++;
    }
    printf ("\n%d",n);
    return 0;
}

Saluditos!.

rir3760

@leosansan: el programa que publico es un ejemplo tomado del libro K&R2, por favor no hagas su tarea (esta en las reglas).

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

leosansan

Cita de: rir3760 en  4 Diciembre 2012, 15:36 PM
@leosansan: el programa que publico es un ejemplo tomado del libro K&R2, por favor no hagas su tarea (esta en las reglas).
Sorry, pensé que al haber posteado código iba perdido oc confundido. Tampoco estoy seguro que mi código sea estrictamente aceptable, es sólo una opción.
Pero lo tendré en cuenta para otra ocasión.
Saluditos!.