contador

Iniciado por vivianfes, 25 Marzo 2015, 03:07 AM

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

vivianfes

hola tengo un problema con mi codigo necesito que imprima cuantas palabras hay en un arreglo bidimensional interactivo, me imprime bien cuantos caracteres hay por fila pero en palabras solo imprime 0, no se si haya alguna funcion para contar palabras o necesite modificar el codigo#include <stdio.h>
#include <string.h>
#define T 3
#define B 30
void carga(char[][B]);
void cuenta(char[][B],int[]);
int palabras(char[][B]);
void imprime(int[],int );

int main(int argc, char *argv[]) {
char mosco[T][B];
int cont,oso[T];
carga(mosco);
cuenta(mosco,oso);
palabras(mosco);
imprime(oso,cont);
return 0;
}
void carga(char mosco[][B])
{
int i;
for(i=0;i<T;i++)
{
gets(mosco[i]);
}
}
void cuenta(char mosco[][B],int oso[T])
{
int i=0;
for( ;i<T;i++)
{
oso[i]=strlen(mosco[i]);
}

}
void imprime(int oso[],int cont)
{
int i=0,j=0;
for(;i<T;i++)
{
printf("cad %d tiene =%d letras\n",i+1,oso[i]);
}
putchar('\n');
for(;j<T;j++)
{
printf("cad %d tiene =%d palabras\n",j+1,cont);
}
}
int palabras(char mosco[][B])
{
int cont,i=0,j=0;

for( ;i<T;i++)
{
cont=0;
for(;j<T&&mosco[i]!='\0';j++)
{
if (i != ' ' || i!= '\n' || i!= '\t')
cont++;
}

}

}

engel lex

linea 56, j debe ser menor que B (cantidad letras) y no T (cantidad de fases)

por otro lado en linea 55 reinicias cont, así que solo obtendrás el resultado de la ultima evaluada

linea 50 puede tampoco estar del todo bien ya que si tienes
"hola mundo cruel" contará solo 2

linea 24, es no recomendado, el uso de get, se recomienda el uso de fgets
https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

vivianfes

gracias ya por fin pude y checare el link muy amable :D

Cita de: engel lex en 25 Marzo 2015, 06:45 AM
linea 56, j debe ser menor que B (cantidad letras) y no T (cantidad de fases)

por otro lado en linea 55 reinicias cont, así que solo obtendrás el resultado de la ultima evaluada

linea 50 puede tampoco estar del todo bien ya que si tienes
"hola mundo cruel" contará solo 2

linea 24, es no recomendado, el uso de get, se recomienda el uso de fgets
https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html