Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   C/C++ (http://www.forosdelweb.com/f96/)
-   -   Problema con arreglos bidimensionales con nombre y numeros (http://www.forosdelweb.com/f96/problema-con-arreglos-bidimensionales-con-nombre-numeros-649621/)

alexistkd 30/11/2008 17:09

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();
}
}


Instru 30/11/2008 17:36

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

alexistkd 30/11/2008 18:27

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();
}
}


Instru 30/11/2008 23:32

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

alexistkd 01/12/2008 13:21

Respuesta: Problema con arreglos bidimensionales con nombre y numeros
 
efectivamente gracias ya se arreglo gracias :)


La zona horaria es GMT -6. Ahora son las 09:43.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.