Hola
Estaba haciendo un ejercicio de mi practica de informatica. El ejercicio es el siguiente
(http://imageshack.com/a/img923/2428/MQUe6Q.jpg)
El codigo que hice hasta ahora es el siguiente
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void CARGADATOS(int arreglo2[5][8],int fila);
void IMPRIMIR(char arreglo1[5][20],int arreglo2[5][8]);
int main()
{
char arreglo1[5][20]; ///ARREGLO DONDE GUARDO NOMBRES DE EQUIPOS
int arreglo2[5][8]; ///ARREGLO DONDE GUARDO LOS NUMEROS
char letra='4';
int bandera=0;
int fila=0,columnachar=0;
while (arreglo1[fila][0]!='\0' && bandera==0 && fila<5)
{
printf ("\nIngrese el nombre del equipo: ");
while (letra!='\r') ///SI ES DISTINTO DE ENTER, GUARDA EN EL ARREGLO LA LETRA Y AUMENTA COLUMNA
{
letra=getche();
if (letra!='\r')
{
arreglo1[fila][columnachar]=letra;
columnachar++;
}
if (letra=='\r') ///SI ES UN ENTER, SI LA COLUMNA ESTA EN 0, PONGO BANDERA EN 1 ASI NO ENCTRA Y TERNINA EL CICLO
{
if (columnachar==0)
{
bandera=1;
}
if (bandera==0) /// SI ES UN ENTER Y LA BANDERA ESTA EN 0, LLAMO A LA FUNCION PARA CARGAR LOS NUMEROS, Y PONGO \0
{ ///TERMINO LA FILA, PONGO UN \0, AUMENTA LA FILA Y LA COLUMNA LA VUELVO A 0..
CARGADATOS(arreglo2,fila);
arreglo1[fila][columnachar]='\0';
fila++;
columnachar=0;
}
}
}
letra='-4'; ///PONGO EN LETRA UN NUMERO PARA QUE ENTRE EN LA PROXIMA FILA.
}
IMPRIMIR(arreglo1,arreglo2);
return 0;
}
void CARGADATOS(int arreglo2[5][8],int fila)
{
int columna=0,puntos=0,ganados=0,empatados=0,perdidos=0,golesafavor=0,golesrecibidos=0,diferencia=0,partidosjugados=0;
printf ("Ingrese la cantidad de partidos jugados: "); scanf ("%d",&partidosjugados
); printf ("Ingrese la cantidad de partidos ganados: "); printf ("Ingrese la cantidad de partidos empatados: "); printf ("Ingrese la cantidad de goles a favor: "); scanf ("%d",&golesafavor
); printf ("Ingrese la cantidad de goles recibidos: "); scanf ("%d",&golesrecibidos
);
puntos=ganados*3 + empatados;
diferencia=golesafavor-golesrecibidos;
arreglo2[fila][columna]=puntos;
columna++;
arreglo2[fila][columna]=partidosjugados;
columna++;
arreglo2[fila][columna]=ganados;
columna++;
arreglo2[fila][columna]=empatados;
columna++;
arreglo2[fila][columna]=perdidos;
columna++;
arreglo2[fila][columna]=golesafavor;
columna++;
arreglo2[fila][columna]=golesrecibidos;
columna++;
arreglo2[fila][columna]=diferencia;
}
void IMPRIMIR(char arreglo1[5][20],int arreglo2[5][8])
{
int fila=0,columna=0;
for (fila=0;fila<5;fila++)
{
printf ("%s",arreglo1
[fila
]); ///IMPRIMO EL NOMBRE DE UN EQUIPO for (columna=0;columna<8;columna++)
{
printf (" %d ",arreglo2
[fila
][columna
]); /// CON EL FOR DE ADENTRO IMPRIMO TODA LA COLUMNA DE NUMEROS.
}
}
}
El problema es que al momento de ejecutarlo tira todos numeros y letras raras. El compilador que uso es el codeblocks que informa si tengo algun error, en este caso lanzo lo siguiente que no logro entender que significa.
Linea 44
Warning: multi-character character constant (-Wmultichar)
Warning: overflow in implicit constant conversion (-Woverflow)
letra='-4';
Letra es un char, no puede tener 2 simbolos, '-' y '4'.
si quieres manejarlo como numeros entonces debe de ser un entero y se declara asi:
int letra;
letra =4;
//algo mas
letra = -4;
No he visto que hace todo tu codigo pero eso es lo del error que preguntas.
Saludos
letra='-4';
Letra es un char, no puede tener 2 simbolos, '-' y '4'.
si quieres manejarlo como numeros entonces debe de ser un entero y se declara asi:
int letra;
letra =4;
//algo mas
letra = -4;
No he visto que hace todo tu codigo pero eso es lo del error que preguntas.
Saludos
Hola
Muchas gracias, si tenes razon!, que tonto q soy, muchas gracias!