Dev - C++ - No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

 
Vista:
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por C++Learner (8 intervenciones) el 07/10/2021 04:11:10
#include<iostream>
#include<iosfwd>
#include<cstring>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#define PROMEDIO(suma,n) (suma/n)

#define VENDEDORES 2
#define VENDOR1 0
#define VENDOR2 1

#define DIAS 7
#define DOMINGO 0
#define LUNES 1
#define MARTES 2
#define MIERCOLES 3
#define JUEVES 4
#define VIERNES 5
#define SABADO 6

const char* dia_nombre[DIAS] = {"DOMINGO", "LUNES", "MARTES", "MIERCOLES", "JUEVES", "VIERNES", "SABADO"};

char vendedor[VENDEDORES];

int ventas[DIAS][VENDEDORES];

void leer_datos(char* vendedor, int ventas[DIAS])
{
int dia = DOMINGO;

printf("\n Ingrese el nombre del vendedor: ");
scanf("%s",&vendedor);

while(dia <= SABADO)
{
printf("\n Ingrese las ventas del dia: ", dia_nombre[dia]);
scanf("%d",&ventas[dia]);

dia++;

}
}

void obtener_ventas_por_dia(int del_dia[DIAS])
{
int dia = DOMINGO;

while(dia <= SABADO)
{
del_dia[dia] += ventas[dia][VENDOR1];
del_dia[dia] += ventas[dia][VENDOR2];

dia++;
}
}

void obtener_ventas_por_vendedor(int vendedor[VENDEDORES])
{
int dia = DOMINGO;

while(dia <= SABADO)
{
vendedor[VENDOR1] += ventas[dia][VENDOR1];
vendedor[VENDOR2] += ventas[dia][VENDOR2];

dia++;
}
}

int mayor(int ventas[DIAS])
{
int dia = DOMINGO;
int max_dia = dia;

while(dia <= SABADO)
{
if(ventas[dia] > ventas[max_dia])
{
max_dia = dia;
}

dia++;
}

return max_dia;
}

int menor(int ventas[DIAS])
{
int dia = DOMINGO;
int min_dia = dia;

while(dia <= SABADO)
{
if(ventas[dia] < ventas[min_dia])
{
min_dia = dia;
}

dia++;
}

return min_dia;
}

int main()
{
int dia = DOMINGO;
int ventas_por_dia[DIAS] = {0,0,0,0,0,0,0};
int ventas_por_vendedor[VENDEDORES] = {0, 0};
int total;

leer_datos(&vendedor[VENDOR1], ventas[VENDOR1]);
leer_datos(&vendedor[VENDOR2], ventas[VENDOR2]);

obtener_ventas_por_dia(ventas_por_dia);

obtener_ventas_por_vendedor(ventas_por_vendedor);

total = (ventas_por_vendedor[VENDOR1] + ventas_por_vendedor[VENDOR2]);

printf("Ventas totales: "), total;

printf("Promedio de ventas general: "), PROMEDIO(total, (VENDEDORES * DIAS));

printf("Promedio de ventas del vendedor: "), vendedor[VENDOR1], PROMEDIO(ventas_por_vendedor[VENDOR1], DIAS);

printf("Promedio de ventas del vendedor: "), vendedor[VENDOR2], PROMEDIO(ventas_por_vendedor[VENDOR2], DIAS);

while(dia <= SABADO)
{
printf("Promedio de ventas del dia: "), dia_nombre[dia], PROMEDIO(ventas_por_vendedor[dia], VENDEDORES);

dia++;
}

if(ventas_por_vendedor[VENDOR1] < ventas_por_vendedor[VENDOR2])
{

printf("El vendedor con mas ventas fue: ", vendedor[VENDOR2]);
printf("El vendedor con menos ventas fue: ", vendedor[VENDOR1]);
}

else
{
printf("El vendedor con mas ventas fue: ", vendedor[VENDOR1]);
printf("El vendedor con menos ventas fue: ", vendedor[VENDOR2]);
printf("El dia con mas ventas fue: ", dia_nombre[mayor(ventas_por_dia)]);
printf("El dia con menos ventas fue: ", dia_nombre[menor(ventas_por_dia)]);
}
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por anonymous (146 intervenciones) el 07/10/2021 05:51:40
Hola, Aquí están los problemas, arréglalos como te muestro en el ejemplo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 //ERROR 1
 
char vendedores[VENDEDORES]; //NO
 
#define N 10 //Yo elegí 10 pero ponle el número que desees que sirva para almacenar los caracteres del nombre del vendedor
char vendedores [VENDEDORES][N + 1]; //SI
 
 
 
//ERROR 2
 
scanf("%s", &vendedor); //NO
 
scanf("%s", vendedor); //SI
 
 
 
//ERROR 3 (y así sucesivamente)
 
leer_datos(&vendedor[VENDOR1], ventas[VENDOR1]); //NO
 
leer_datos(vendedor[VENDOR1], ventas[VENDOR1]); //SI
 
 
 
//ERROR 4 (y así sucesivamente)
 
printf("Ventas totales: "), total; //NO
 
printf("Ventas totales: %d", total); //SI

No se si me escapó algún error pero por ahora encárgate de estos, cualquier cosa avísame, suerte saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por C++Learner (8 intervenciones) el 07/10/2021 19:31:14
Corregi los errores como dijiste y el programa ahora funciona como deberia pero da resultados desacertados, gracias por responder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por anonymous (146 intervenciones) el 07/10/2021 20:09:04
De nada, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por C++Learner (8 intervenciones) el 07/10/2021 20:32:51
Gracias, alguna ayuda en por que da resultados desacertados?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por anonymous (146 intervenciones) el 07/10/2021 20:35:02
Una pregunta primero: tu escribiste el código y no sabes que es lo que sucede?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por C++Learner (8 intervenciones) el 07/10/2021 20:50:51
No lo hice yo, era un pseudocodigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por anonymous (146 intervenciones) el 07/10/2021 20:57:23
Manda el último código que hiciste para ver, pero igual necesito que me digas que datos no coinciden para ver.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por C++Learner (8 intervenciones) el 07/10/2021 21:06:12
Le puse que cada vendedor vendio 100 por semana y la venta total dio 130, y el resultado de los promedios son exorbitantes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#include<iostream>
#include<iosfwd>
#include<cstring>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#define PROMEDIO(suma,n) (suma/n)
 
#define VENDEDORES 2
#define VENDOR1 0
#define VENDOR2 1
#define N 10
#define DIAS 7
#define DOMINGO 0
#define LUNES 1
#define MARTES 2
#define MIERCOLES 3
#define JUEVES 4
#define VIERNES 5
#define SABADO 6
 
const char* dia_nombre[DIAS] = {"DOMINGO",  "LUNES",  "MARTES", "MIERCOLES",  "JUEVES", "VIERNES",  "SABADO"};
 
char vendedor [VENDEDORES][N + 1];
 
int ventas[DIAS][VENDEDORES];
 
void leer_datos(char* vendedor, int ventas[DIAS])
{
    int dia = DOMINGO;
 
    printf("\n Ingrese el nombre del vendedor: ");
    scanf("%s", vendedor);
 
    while(dia <= SABADO)
    {
          printf("\n Ingrese las ventas del dia: ", dia_nombre[dia]);
          scanf("%d", &ventas[dia]);
 
          dia++;
 
    }
}
 
void obtener_ventas_por_dia(int del_dia[DIAS])
{
     int dia = DOMINGO;
 
     while(dia <= SABADO)
     {
          del_dia[dia] += ventas[dia][VENDOR1];
          del_dia[dia] += ventas[dia][VENDOR2];
 
          dia++;
     }
}
 
void obtener_ventas_por_vendedor(int vendedor[VENDEDORES])
{
     int dia = DOMINGO;
 
     while(dia <= SABADO)
     {
          vendedor[VENDOR1] += ventas[dia][VENDOR1];
          vendedor[VENDOR2] += ventas[dia][VENDOR2];
 
          dia++;
     }
}
 
int mayor(int ventas[DIAS])
{
    int dia = DOMINGO;
    int max_dia = dia;
 
    while(dia <= SABADO)
    {
        if(ventas[dia] > ventas[max_dia])
        {
              max_dia = dia;
        }
 
         dia++;
    }
 
    return max_dia;
}
 
int menor(int ventas[DIAS])
{
     int dia = DOMINGO;
     int min_dia = dia;
 
    while(dia <= SABADO)
    {
        if(ventas[dia] < ventas[min_dia])
        {
              min_dia = dia;
        }
 
         dia++;
    }
 
    return min_dia;
}
 
int main()
{
    int dia = DOMINGO;
    int ventas_por_dia[DIAS] = {0,0,0,0,0,0,0};
    int ventas_por_vendedor[VENDEDORES] = {0, 0};
    int total;
 
    leer_datos(vendedor[VENDOR1], ventas[VENDOR1]);
    leer_datos(vendedor[VENDOR2], ventas[VENDOR2]);
 
    obtener_ventas_por_dia(ventas_por_dia);
 
    obtener_ventas_por_vendedor(ventas_por_vendedor);
 
    total = (ventas_por_vendedor[VENDOR1] + ventas_por_vendedor[VENDOR2]);
 
    printf("\n Ventas totales: %d", total);
 
    printf("\n Promedio de ventas general:  %d", PROMEDIO(total,  (VENDEDORES * DIAS)));
 
    printf("\n Promedio de ventas del vendedor: %d", vendedor[VENDOR1], PROMEDIO(ventas_por_vendedor[VENDOR1], DIAS));
 
    printf("\n Promedio de ventas del vendedor: %d", vendedor[VENDOR2], PROMEDIO(ventas_por_vendedor[VENDOR2], DIAS));
 
    while(dia <= SABADO)
    {
        printf("\n Promedio de ventas del dia: %d", dia_nombre[dia], PROMEDIO(ventas_por_vendedor[dia], VENDEDORES));
 
        dia++;
    }
 
    if(ventas_por_vendedor[VENDOR1] < ventas_por_vendedor[VENDOR2])
    {
 
       printf("\n El vendedor con mas ventas fue: %s", vendedor[VENDOR2]);
       printf("\n El vendedor con menos ventas fue: %s", vendedor[VENDOR1]);
    }
 
   else
    {
        printf("\n El vendedor con mas ventas fue: %s", vendedor[VENDOR1]);
        printf("\n El vendedor con menos ventas fue: %s", vendedor[VENDOR2]);
        printf("\n El dia con mas ventas fue: %s", dia_nombre[mayor(ventas_por_dia)]);
        printf("\n El dia con menos ventas fue: %s", dia_nombre[menor(ventas_por_dia)]);
    }
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por anonymous (146 intervenciones) el 08/10/2021 00:16:11
Ok, mira si me das permiso para usar, copiar, modificar y compilar el código, puedo intentar solucionar los problemas (no prometo nada) pero necesito que digas EXPLÍCITAMENTE si me das permiso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por C++Learner (8 intervenciones) el 08/10/2021 09:03:52
Si, te doy permiso, pero no cambies printf y scanf a cout y cin, por favor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por anonymous (146 intervenciones) el 08/10/2021 21:26:12
Bien ya arreglé el programa tal como dije, no cambié printf ni scanf, al final agregué unas instrucciones para que el programa no se cierre solo, pero si tu quieres las borras, en fin, ojala te sirva. Saludos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#include <iostream>
#include <iosfwd>
#include <cstring>
#include <stdio.h>
#include <stdlib.h>
#include <string>
 
#define PROMEDIO(suma, n) ((suma) / (n))
 
#define N 10
 
#define VENDEDORES 2
#define VENDOR1 0
#define VENDOR2 1
 
#define DIAS 7
#define DOMINGO 0
#define LUNES 1
#define MARTES 2
#define MIERCOLES 3
#define JUEVES 4
#define VIERNES 5
#define SABADO 6
 
const char* dia_nombre[DIAS] = {"DOMINGO", "LUNES", "MARTES", "MIERCOLES", "JUEVES", "VIERNES", "SABADO"};
 
char vendedor[VENDEDORES][N + 1];
 
int ventas[VENDEDORES][DIAS];
 
void leer_datos(char* vendedor, int ventas[DIAS])
{
	int dia = DOMINGO;
 
	printf("\n Ingrese el nombre del vendedor (Max. %d caracteres): ", N);
	scanf("%s", vendedor);
 
	while(dia <= SABADO)
	{
		printf("\n Ingrese las ventas del dia %s: ", dia_nombre[dia]);
		scanf("%d", &ventas[dia]);
 
		dia++;
	}
}
 
void obtener_ventas_por_dia(int del_dia[DIAS])
{
	int dia = DOMINGO;
 
	while(dia <= SABADO)
	{
		del_dia[dia] += ventas[VENDOR1][dia];
		del_dia[dia] += ventas[VENDOR2][dia];
 
		dia++;
	}
}
 
void obtener_ventas_por_vendedor(int vendedor[VENDEDORES])
{
	int dia = DOMINGO;
 
	while(dia <= SABADO)
	{
		vendedor[VENDOR1] += ventas[VENDOR1][dia];
		vendedor[VENDOR2] += ventas[VENDOR2][dia];
 
		dia++;
	}
}
 
int mayor(int ventas[DIAS])
{
	int dia = DOMINGO;
	int max_dia = dia;
 
	while(dia <= SABADO)
	{
		if(ventas[dia] > ventas[max_dia])
			max_dia = dia;
 
		dia++;
	}
 
	return max_dia;
}
 
int menor(int ventas[DIAS])
{
	int dia = DOMINGO;
	int min_dia = dia;
 
	while(dia <= SABADO)
	{
		if(ventas[dia] < ventas[min_dia])
			min_dia = dia;
 
		dia++;
	}
 
	return min_dia;
}
 
int main()
{
	int dia = DOMINGO;
	int ventas_por_dia[DIAS] = {0,0,0,0,0,0,0};
	int ventas_por_vendedor[VENDEDORES] = {0,0};
	int total;
 
	leer_datos(vendedor[VENDOR1], ventas[VENDOR1]);
	leer_datos(vendedor[VENDOR2], ventas[VENDOR2]);
 
	obtener_ventas_por_dia(ventas_por_dia);
 
	obtener_ventas_por_vendedor(ventas_por_vendedor);
 
	total = (ventas_por_vendedor[VENDOR1] + ventas_por_vendedor[VENDOR2]);
 
	printf("\n Ventas totales: %d", total);
 
	printf("\n Promedio de ventas general: %d", PROMEDIO(total, (VENDEDORES * DIAS)));
 
	printf("\n Promedio de ventas del vendedor %s: %d", vendedor[VENDOR1], PROMEDIO(ventas_por_vendedor[VENDOR1], DIAS));
 
	printf("\n Promedio de ventas del vendedor %s: %d", vendedor[VENDOR2], PROMEDIO(ventas_por_vendedor[VENDOR2], DIAS));
 
	while(dia <= SABADO)
	{
		printf("\n Promedio de ventas del dia %s: %d", dia_nombre[dia], PROMEDIO(ventas_por_dia[dia], VENDEDORES));
 
		dia++;
	}
 
	if(ventas_por_vendedor[VENDOR1] < ventas_por_vendedor[VENDOR2])
	{
 
		printf("\n El vendedor con mas ventas fue: %s", vendedor[VENDOR2]);
		printf("\n El vendedor con menos ventas fue: %s", vendedor[VENDOR1]);
	}
	else
	{
		printf("\n El vendedor con mas ventas fue: %s", vendedor[VENDOR1]);
		printf("\n El vendedor con menos ventas fue: %s", vendedor[VENDOR2]);
	}
 
	printf("\n El dia con mas ventas fue: %s", dia_nombre[mayor(ventas_por_dia)]);
	printf("\n El dia con menos ventas fue: %s", dia_nombre[menor(ventas_por_dia)]);
 
	//Para que no se cierre el programa
	printf("\n Presione ENTER para continuar\n");
	getchar();
	getchar();
 
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por C++Learner (8 intervenciones) el 09/10/2021 01:18:26
Muchisimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No me da error este codigo C++ pero no funciona correctamente y no se que hice mal

Publicado por anonymous (146 intervenciones) el 09/10/2021 03:07:24
No hay problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar