Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - MAFUS

#1151
En C, facilito y para toda la família  :rolleyes:

#include <stdio.h>

int main() {
   char str[255];
   scanf("%255s", str);
   int n = 0;
   int res = 1;
   int i;
   
   for(i = 0; i < sizeof(str); ++i) {
       if(str[i] == '1')
           ++n;
       else {
           if(n)
               res *= n;
           n = 0;
       }
   }
   printf("%i\n", res);
   
   return 0;
}
#1152
Se me ocurre que tengas un array vacío que sea el que mirarás si existen las letras repetidas o no.
Así, cuándo empieces una palabra con dicho array vacío (ej todo a 0). Miras la primera letra de la palabra. Si no existe en el array de palabras repetidas la incluyes Y apuntas la letra en la palabra destino. Si existe la letra en el array destino simplemente pasas a la siguiente letra de la palabra original y empiezas de nuevo.
Cuándo la palabra original se termine pones el array de letras repetidas a 0 para ser usado en la siguiente palabra.
#1153
AlbertoBSD, tienes razón en la nomenclatura :D

Pero en cuestión a la declaración y suponiendo que int y no existe y nos quedamos con que es float ésta sería así:


int x[10], *px, y;
float y;


int Fx(float*, int*, int, char*, int, float, char);

o

int Fx(float *, int[], int, char*, int, float, char);
#1154
Siendo tus datos definidos

typedef struct {
   int cocheID;
   int clienteID;
} coche;

typedef struct {
   coche coches[MAX_CARS];
   int numcoches;
} tabla_taller;


La declaración de la función

void LocalizaCliente(coches  taller1, int identificador)

es errónea.

coches es una variable del tabla_taller, no un tipo de dato. Si quisieras pasar a la función el dato coches deberías declarar un puntero a coche o un array. Al pasar un array o un puntero deberás pasarle también las dimensiones de éste porqué ese dato no acompaña a un array.
Debería quedarte así:

void LocalizaClientes(coche *lista, size_t size, int identificador)


Pero dentro de la función veo que quieres hacer uso del tipo de dato tabla_taller y, por otra parte, supongo que quieres que la función regrese el subíndice del coche que pertenece al cliente así que la declaración de la función debe ser:

int LocalizaClientes(tabla_taller taller, int identificador)


Dentro de la función mejor si haces un for (porqué básicamente iteras en una lista) que vaya desde 0 hasta el máximo número de coches. Actualmente lo haces hasta 99 y puede superar las dimensiones del array de coches del taller.

Una solución para hacer toda la función podría ser la siguiente:

int LocalizaCliente(tabla_taller taller, int identificador) {
   int i;
   int localizador = -1; /* Retornará -1 si no existe dicho cliente
                          * en el taller. */
   
   for(i = 0; i < taller.numcoches; ++i)
       if(taller_dado.coches[i].clienteId == identificador) {
           localizador = i;
           break;
       }
   }
   
   return localizador;
}


He pasado la estructura por referencia porqué desconozco si habéis estudiado pasar parámetros por referencia a las funciones.

#1155
Encierra tu código entre etiquetas [code=c] y [/code], será más legible.

Ahora, si me das cosa de media horita de repondo bien, que estoy con el móvil y mis capacidades de edición son reducidas, o muy tediosas.
#1156
Así es: dos identificador que estén en el mismo 'scope' (tengo que encontrar el equivalente al español para esta palabra) no pueden tener el mismo nombre.
#1157
En la sentencia del if haces referencia al tipo de dato coche cuándo deberías hacerla a la variable array coches, y poner el subíndice para acceder al dato que guarda dicho array.
#1158
Sigue habiendo el mismo problema
x es un array de 10 enteros
y
x es un real (float)
#1159
¿Qué tal vas con los bucles for?
Por cierto, los caracteres 'A', 'Z', 'B', etc... C los trata como números.
'A' < 'Z'

Con esto deberías ser capaz de resolverlo.
#1160
Pues dices que hay un falo en el enunciado y a esperar el aprobado  :laugh: :laugh: