Autor
|
Tema: Pregunta programa en c (Leído 4,454 veces)
|
KIDRAP1
Desconectado
Mensajes: 24
|
Hola amigos mi pregunta es la siguiente, tengo 4 vendedores de los cuales debo guardar uno por uno, nombre, numero de ventas, codigo y descripcion y motrarlo por pantalla y mostrar las ventas totales de todos los vendedores, pero al final debo mostrar cual vendedor tiene el record de haber vendido mas articulos y en eso es que tengo el problema por favor ayudenme a solucionarlo se los agradezco, aqui les dejo lo que eh hecho. #include <stdio.h> #include <stdlib.h> char codigo1[106]; char nom1[50]; char d1[100]; int n1; int c1,acumulador; int main() { for(c1=1;c1<=4;c1++){ printf(" Editorial vida - Gestion de ventas\n\n\n"); printf(" Ingrese datos de vendedor\n\n"); printf("\nIngrese nombre de vendedor "); scanf("%s",&nom1);
printf("\nIngrese cantidad de productos "); scanf("%d",&n1);
printf("\n\nIngrese codigo de producto "); scanf("%s",&codigo1); printf("\nIngrese descripcion del producto\n\n "); scanf("%s",&d1); acumulador=n1+acumulador; getchar(); system ("cls");
printf(" Informe de articulos vendidos\n\n\n\n"); printf("Vendedor: %s Articulos vendidos:%d Codigo: %s\n\n",nom1,n1,codigo1); printf("Descripcion de productos\n\n%s\n\n\n\n",d1);
printf("Total de artículos vendidos: %d\n\n",acumulador); system("pause"); system("cls"); } if(
system("PAUSE"); return 0; } [code=c][code=c] [/code][/code]
|
|
|
En línea
|
|
|
|
αиσиyмσυรCร
Desconectado
Mensajes: 83
[αиσиyмσυร̲̅Cร̲̅]
|
Yo ando aprendiendo C poco a poco pero creo que puedes resolver tu duda haciendo las variables de los 4 vendedores ejemplo: w, x, y, z y compararlas al final de tal forma que hacemos una variable para compararlos opino que asi: int mayor;
if ((w>x)&&(w>y)&&(w>z) mayor=w; else if ((x>y)&&(x>z)) mayor=x; else if (y>z) mayor=y; else mayor=z;
Espero haberte sido de ayuda y que te salga el programa Un saludo αиσиyмσυรCร
|
|
|
En línea
|
|
|
|
Caster
|
Lo mejor sería que hicieras un programa para guardar todos los datos sobre todos los vendedores, y al final los comparases.
Saludos
|
|
|
En línea
|
|
|
|
αиσиyмσυรCร
Desconectado
Mensajes: 83
[αиσиyмσυร̲̅Cร̲̅]
|
Lo mejor sería que hicieras un programa para guardar todos los datos sobre todos los vendedores, y al final los comparases.
Saludos
A eso me refería yo le puse un ejemplo mas o menos
|
|
|
En línea
|
|
|
|
crksergio
Desconectado
Mensajes: 42
Ðevastador
|
Debes hacer un ciclo de comparación empezando por una variable que tenga un valor como 0 (si es que deseas ver quién vendió más) y también tener una variable auxliar para poder hacer el cambio sin perder los datos, para poder hacer algo como lo siguiente. int NumVend[4]; //Este es el vector para guardar la ventas de tus 4 vendedores. int VendMayor=0,VendAux; //VendMayor es donde va a quedar el valor de quién haya vendido más y VendAux es para poder dejar un dato estacionariamente sin perderlo al reescribir las variables.
for(i=0;i<4;i++) { if(NumVend>VendMayor) { VendAux=VendMayor; VendMayor=NumVend[i]; NumVend[i]=VendAux; } } De esta manera, en la variable VendMayor queda el valor de quién vendió más. Espero te sirva, eso fue lo que yo entendí al leer tu problema. Saludos.
|
|
« Última modificación: 15 Julio 2013, 03:24 am por cracksergio »
|
En línea
|
|
|
|
Miky Gonzalez
Desconectado
Mensajes: 87
http://mikygonzalez.comule.com/blog/
|
Puedes, para practicar, hacer una función para comparar 4 números y retornar el mayor: int retornar_mayor(int a, int b, int c, int d) { if((a > b) && (a > c) && (a > d) return a; else if((b > c) && (b > d)) return b; else if(c > d) return c; else return d; }
Si quieres practicar con el preprocesador de C, puedes hacer que en vez de función sea una directiva. Esto lo puedes hacer como: #define COMPARAR(a, b, c, d) if((a > b) && (a > c) && (a > d) printf("%d", a); \ else if((b > c) && (b > d)) printf("%d", b); \ else if(c > d) printf("%d", c); \ else printf("%d", d);
Para llamar a esta función es muy sencillo; Por ejemplo, podrías hacer: retornar_mayor(vend_1, vend_2, vend_3, vend_4);
Esto te retornará el valor mayor de todos los vendedores, pero no te dirá cuál es. Puede modificar la función para que te retorne una matriz con el nombre del vendedor y su valor: char** lista; // char lista[][]; lista[][] = {{"VENDEDOR", "50"}}; // Un ejemplo en bruto
Para retornar una matriz (sea de la dimensión que sea) debes retornar un puntero hacia la matriz.
|
|
« Última modificación: 15 Julio 2013, 11:22 am por Miky Gonzalez »
|
En línea
|
Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica: EN CONSTRUCCIÓN
|
|
|
aguml
Desconectado
Mensajes: 378
|
yo no lo habria planteado asi, habria creado un array de 4 estructuras (una por vendedor) y así habria quedado mas ordenado a mi entender. Luego lo que yo haría tras cada venta sería ordenar el array por el valor de las ventas y así tendria un ranking desde el mejor vendedor al peor y podria consultarlo cuando quisiera.
|
|
|
En línea
|
|
|
|
Miky Gonzalez
Desconectado
Mensajes: 87
http://mikygonzalez.comule.com/blog/
|
A mi, el programa, a mi entender, podría quedar algo como lo que sigue. Sería una muy buena forma de implementarlo y trabajar con punteros y demás, que es lo que más suele costar al principio: Hola amigos mi pregunta es la siguiente, tengo 4 vendedores de los cuales debo guardar uno por uno, nombre, numero de ventas, codigo y descripcion y motrarlo por pantalla y mostrar las ventas totales de todos los vendedores, pero al final debo mostrar cual vendedor tiene el record de haber vendido mas articulos y en eso es que tengo el problema por favor ayudenme a solucionarlo se los agradezco, aqui les dejo lo que eh hecho. #include <stdio.h> #include <stdlib.h> #define NUM_VENDEDORES 4 typedef struct vendedores { char *nombre; unsigned int numero_ventas; unsigned int codigo; char *descripcion; // 255chr + \0 } vendedores_t; int main(int argc, char **argv) { vendedores_t *vendedor = malloc(sizeof(vendedores_t ) * 4); unsigned int bucle_i = 0; while(bucle_i < 4) { printf("Ingrese los datos para vendedor %d (nombre - ventas - codigo - desc): ", bucle_i + 1); scanf("%s %i %i %s", vendedor [bucle_i ]. nombre, &vendedor [bucle_i ]. numero_ventas, &vendedor [bucle_i ]. codigo, vendedor [bucle_i ]. descripcion);
|
|
|
En línea
|
Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica: EN CONSTRUCCIÓN
|
|
|
crksergio
Desconectado
Mensajes: 42
Ðevastador
|
Aquí ya tienes muchas soluciones. Yo creo que te queda buscar la que más se adecue a tu problema y que consuma menos memoria, obvio.
|
|
|
En línea
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pregunta sobre el buen programa Music Comberter
Software
|
SaintGermain
|
0
|
1,368
|
18 Marzo 2005, 02:00 am
por SaintGermain
|
|
|
Pregunta vb2008 Si respondes y me sirve finalizo mi programa
.NET (C#, VB.NET, ASP)
|
usuario oculto
|
1
|
2,259
|
23 Febrero 2009, 20:19 pm
por CICOLO_111234
|
|
|
Pregunta al generar un programa.
Programación C/C++
|
elkiy
|
4
|
2,374
|
8 Junio 2012, 22:40 pm
por elkiy
|
|
|
[Pregunta] Programa VB.NET4 modificado con Cheat Engine
Ingeniería Inversa
|
Gordonfreeman75
|
7
|
4,364
|
21 Febrero 2013, 13:36 pm
por Gordonfreeman75
|
|
|
[pregunta]que es el mutex y como se programa?
Análisis y Diseño de Malware
|
daryo
|
3
|
4,587
|
17 Abril 2013, 20:09 pm
por $Edu$
|
|