Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con arreglos bidimensionales con nombre y numeros

Estas en el tema de Problema con arreglos bidimensionales con nombre y numeros en el foro de C/C++ en Foros del Web. Buenas estoy haciendo un programita usando arreglos pero no me corre como deberia. La idea es que guarde el nombre del vendedor serian 3 nombres, ...
  #1 (permalink)  
Antiguo 30/11/2008, 17:09
 
Fecha de Ingreso: mayo-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Exclamación Problema con arreglos bidimensionales con nombre y numeros

Buenas estoy haciendo un programita usando arreglos pero no me corre como deberia.

La idea es que guarde el nombre del vendedor serian 3 nombres, eso lo guarda correctamente, pero los montos no, al ejecutar el programa me imprime bien los nombres pero los montos me salen 0.00 los 3.

este es el codigo que llevo hasta ahora.
Código:
#include<conio.h>
#include<stdio.h>
#include<math.h>

#define M 3
#define N 3
void_bugfix_float(void){
float *bugfix;
bugfix=bugfix;
}

main(){
char *a[M][N];
float monto[M][N];
int i,z;
clrscr();
for(i=0;i<M;i++){
printf("Introduzca el nombre del %d vendedor \n",i);
scanf("%s",&a[i][0]);
printf("Introduzca el primer monto");
scanf("%f",&monto[i]);
printf("Introduzca el segundo monto");
scanf("%f",&monto[i]);
}
printf("nombre     Monto1     Monto 2");
printf("\n");
for(i=0;i<M;i++){
printf("%s    %.2f     %.2f\n",&a[i][0],&monto[i][0],&monto[i][0]);
getch();
}
}
  #2 (permalink)  
Antiguo 30/11/2008, 17:36
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Problema con arreglos bidimensionales con nombre y numeros

Hay bastantes errores en ese codigo.

Primero:

scanf("%s",&a[i][0]);

Si "a" lo declaraste como un puntero de arreglos bidimensionales(como si fuera un triple puntero) entonces esa instruccion no sirve.

Y por lo que veo que quieres hacer lo mas conveniente es que no uses punteros.

char a[M][N];
.....
scanf("%s",a[i]);

Eso funciona siempre y cuando lo que introduzcas en scanf no sea mayor a N.

Ahora:

scanf("%f",&monto[i]);
...
scanf("%f",&monto[i]);

Aqui no entiendo realmente que intententas hacer. Quieres leer 2 float y ponerlos en el mismo lugar??????

He de suponer que queires 2 listas de floats.

Lo ideal es algo asi:

float monto1[M];
float monto2[M];

scanf("%f",&monto1[i]);
....
scanf("%f",&monto2[i]);

Eso es lo mas correcto.

Por ultimo, el uso de conio.h es inutil.
He de imaginar que usas turbo C++ o Borland. No se si te has dado cuenta que tu codigo no compila en ningun otro lado como Dev-cpp o Visual C++.
Intenta omitir conio.h los mas que puedas, no sirve para nada.

Saludos
  #3 (permalink)  
Antiguo 30/11/2008, 18:27
 
Fecha de Ingreso: mayo-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con arreglos bidimensionales con nombre y numeros

ok bro corregi el codigo pero aun me tira 0.00 los montos :(

aqui esta el codigo corregido:

Código:
#include<stdio.h>
#include<math.h>

#define M 3
#define N 3
void_bugfix_float(void){
float *bugfix;
bugfix=bugfix;
}

main(){
char a[M][N];
float monto[M];
float monto2[M];
int i,z;
clrscr();
for(i=0;i<M;i++){
printf("Introduzca el nombre del %d vendedor \n",i);
scanf("%s",&a[i]);
printf("Introduzca el primer monto");
scanf("%f",&monto[i]);
printf("Introduzca el segundo monto");
scanf("%f",&monto2[i]);
}
printf("nombre     Monto1     Monto 2");
printf("\n");
for(i=0;i<M;i++){
printf("%s    %.2f     %.2f\n",&a[i],&monto[i],&monto2[i]);
getch();
}
}
  #4 (permalink)  
Antiguo 30/11/2008, 23:32
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Problema con arreglos bidimensionales con nombre y numeros

Tu problema esta en el ultimo printf.

El operador de indireccion "&" te regresa la direccion. Y creo yo estas buscando el valor no???

printf("%s %.2f %.2f\n",&a[i], monto[i], monto2[i]);

Saludos
  #5 (permalink)  
Antiguo 01/12/2008, 13:21
 
Fecha de Ingreso: mayo-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con arreglos bidimensionales con nombre y numeros

efectivamente gracias ya se arreglo gracias :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:47.