sourmijo
marzo 10, 2011, 03:41 PM
Buenas tengo aqui una duda, estoy en programacion basica de C y me pusieron este problemita
Los incas usaban el sistema decimal y representaban los números de la siguiente manera:
* Los números comienzan con un guión.
* Cada dígito se representa por una secuencia de Xs consecutivas.
* Un guión determina el final de cada dígito. El cero se representan por la ausencia de equis (secuencia vacía). Es decir, que con guion consiecutivo se contaran como cero hasta el ultimo que indicara fin de la secuencia individual
Ejemplo:
-XX-XXXX-XXX- representa el número 243
-XX--XXXX---XXX- representa el número204003
-X------- 1000000
-XXXXXXXXX--XXXXXXXXX-XXXXXXX- 9097
-X- 1
hasta ahora en clases nos explicaron como leer la cantidad de caracteres, palabras y afines de una cadena de caracteres, y he realizado este codigo
#define SI 1
#define NO 0
#include <stdio.h>
/*contar los cars., palabras y líneas de un fichero*/
void main()
{
int c,dentropal;
float nc,np,nl,med_car;
dentropal = NO;
nc=np=nl=0;
while ((c = getchar()) != EOF)
{
if (c != ' ' && c != '\n' && c !='\t' || c !='-') ++nc;
if (c == '\n') ++nl;
if (c == ' ' || c == '\n' || c =='\t' || c =='-') dentropal = NO;
else if (dentropal == NO)
{dentropal = SI;
++np;
}
}
printf("Núm. de líneas en el fichero = %8.0f\n", nl);
printf("Núm. de palabras en el fichero = %8.0f\n", np);
printf("Núm. de letras en el fichero = %8.0f\n", nc);
}
como pueden ver el programa me cuenta la cantidad de palabras debido que al conseguir un (-) este no lo cuenta, hasta ahora bien, mi problema y en lo que necesito AYUDA O UN SIMPLE CONSEJO de como debo seguir para :
1) contar individualemnte cada palabra, es decir, con mi codigo me cuenta el total de toda la cadena, cual seria la modificacion para que me cuente los caracteres por separado, es decir, que cuando consiga un (-) este haga la cuenta y continue con la siguiente asi sucesivamente
2) cuando sean (-) consecutivos contarlos como Ceros, sin contar el ultimo
De verdad aprecio su ayuda y Gracias d Antemano
vBulletin®, Copyright ©2000-2013, Jelsoft Enterprises Ltd.