[ Foro de C ]
Tengo una duda con una tarea que me dejaron. Soy nuevo en c y la verdad es que no entiendo mucho.
La tarea resolver un problema de ver cuantos animales pasaron por ambos mares y me dan los datos de entrada.
N = 5
A(animales)=[3, 1, 4, 1, 3]
M(Mares)=[1, 2, 1, 2, 2]
la respuesta deberia ser que solo un animal(el animal 3) paso por ambos mares
Y lo que llevo de mi código es lo siguiente:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, cont=0;
printf("Tamaño del arreglo");
scanf("%d", &n);
int A[n], M[n];
for(int i=0; i<n; i++)
{
printf("Ingresa el valor");
scanf("%d", &A[i]);
scanf("%d", &M[i]);
}
for(int i=0; i<n; i++)
{
printf("%d %d\n", A[i], M[i]);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, cont=0;
char texto[4];
printf("Tamaño del arreglo");
----> gets(texto);
---> sscanf(texto,"%d",&n);
int A[n], M[n];
for(int i=0; i<n; i++)
{
printf("Ingresa el valor de A");
---> gets(texto);
---> sscanf(texto,"%d",&A[i]);
printf("Ingresa el valor de M");
---> gets(texto);
---> sscanf(texto,"%d",&M[i]);
}
for(int i=0; i<n; i++)
{
printf("%d %d\n", A[i], M[i]);
}
return 0;
}
La funcion scanf se come el intro es decir si pone 1 y luego intro, la pulsacion de Intro lo coge como numero
Tambien deberias comentar mas si te das cuenta he puesto dos printf uno para A y otro para M
Yo no se si ese es el resultado que esperabas pero ahora el programa se ejecuta
usa gets(variable) siendo la variable tipo char
y lo conviertes a numero con sscanf(texto,"%d",&n); //la n es un numero que recibi la variable ya convertida a decimal
Dado que dices "ambos" mares, en lugar de usar 2 vectores -uno para animales y otro para mares- puedes pensar el problema usando una matriz, de n filas por 2 columnas. Las filas representan los animales, y las columnas los mares. En cada celda de la matriz colocas un valor de verdad -un 0 si el animal no paso por ese mar, o un 1 si sí pasó-. Puedes hacerte la vida más fácil comenzando la numeración de la matriz en 1,1 en lugar de 0,0 para que se corresponda con los números de animales y de mares.
Sí o sí, para que esto funcione debes inicializar la matriz a cero (falso). Ejemplo:
for(int i = 1; i <= n; i++) M[i][1] = M[i][2] = 0; //M es la matriz, n la cantidad de animales, 1 y 2 los mares.
Para cada animal -y su correspondiente mar- que se ingresa le asignas a la celda de la matriz un 1 (verdadero):
M[animal][mar] = 1; //el animal pasó por el mar
Luego, en otro ciclo chequeas por cada fila (cada animal) si ambas columnas están en 1, es decir, pasó por los 2 mares.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)