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: ");
scanf ("%d",&ganados);
printf ("Ingrese la cantidad de partidos empatados: ");
scanf ("%d",&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.
}
printf ("\n");
}
}
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
Cita de: AlbertoBSD en 21 Agosto 2016, 17:38 PM
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!