Autor
|
Tema: Ayuda ejercicio C (Leído 4,227 veces)
|
kuhi
Desconectado
Mensajes: 37
50 shadows of Kappa
|
Hola! Llevo casi 2 meses esperando ayuda de mi profesor y la verdad ya he tirado la toalla, me responde a las 2 semanas y encima me devuelve el ejercicio "corregido" lo pruebo y tiene el mismo error que el original, ahora sigo esperando y sin respuesta. Os dejo el código, con su explicación. /* Crear un programa llamado vendedores que cree un array de 18 X 10 indicando que poseemos una empresa de 18 vendedores cada uno de los cuales vende 10 productos. El array almacena los ingresos obtenidos por cada vendedor en cada producto, de modo que un menú permite almacenar los ingresos, revisar el total de cada vendedor y obtener los ingresos totales */
#include <stdio.h> #include <stdlib.h> #include <conio.h>
int vendedores[18][10], producto; void almacenar_ingresos(); void revisar_total(); void total_total(); int menu(); int nvendedor, nproducto, ventas; int suma, resp, i, j; char oacute = 162, euro = 8364, eacute = 130;
void main() { resp=menu(); while(resp!=4) { switch(resp) { case 1: almacenar_ingresos(); break; case 2: revisar_total(); break; case 3: total_total(); break; } resp=menu(); } }
int menu() { printf("Seleccione una opci%cn:\n\n",oacute); printf("[1] Almacenar ingresos de cada vendedor.\n"); printf("[2] Revisar el total de cada vendedor.\n"); printf("[3] Obtener los ingresos totales.\n"); printf("[4] Salir.\n\n"); scanf("%i",&resp); }
void almacenar_ingresos() { system("cls"); printf("Ha seleccionado: almacenar ingresos de cada vendedor.\n\n"); printf("Introduzca numero de vendedor: \n"); scanf("%i",&nvendedor); printf("Introduzca numero de producto: \n"); scanf("%i",&nproducto); printf("Cantidad vendida: \n"); scanf("%i",&ventas); vendedores[nvendedor][nproducto]=ventas; printf("Se han actualizado los valores con %sxito.\n\n",eacute); }
void revisar_total() { system("cls"); printf("Ha seleccionado: revisar el total de cada vendedor.\n\n"); printf("Introduzca el numero de vendedor: \n"); scanf("%i",&nvendedor); suma=0; for(i=0;i<10;i++) { suma = suma+vendedores[nvendedor][i]; } printf("El total del vendedor %i es: %i%s",nvendedor,suma,euro); }
void total_total() { system("cls"); printf("Ha seleccionado: obtener los ingresos totales.\n\n"); suma=0; for(i=0;i<nvendedor;i++) { for(j=0;j<nproducto;j++) { suma = suma + vendedores[i][j]; } } printf("La cantidad total es de: %i%s",suma,euro); }
|
|
|
En línea
|
El conocimiento no ocupa lugar, somos libres de saber cuánto queramos...
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Te enumero los errores. 1. En la línea char oacute = 162, euro = 8364, eacute = 130; euro no debería tener ese valor. Un char tiene como máximo el valor 255, y si tu máquina lo trata como signed solo puede llegar hasta 127. 2. En la línea main, en C, debe ser siempre entero. void es pre-ansi o para C++. 3. La función menu() debe devolver el entero resp, sin embargo no regresa nada. 4. En la función revisar_total() y total_total() donde dicen printf("El total del vendedor %i es: %i%s",nvendedor,suma,euro); y printf("La cantidad total es de: %i%s",suma,euro); tienes el argumento %s para mostrar un carácter pero éste debería ser %c. 5. En la función total_total() tienes for(i=0;i<nvendedor;i++) { for(j=0;j<nproducto;j++) {
el límite superior no deben ser las variables nvendedor y nproducto ya que sirven para guardar posiciones a modificar en el array por las demás funciones, no para marcar el número máximo de elementos en el array. Debería ser 18 y 10 respectivamente. Ahora, haciendo juicio crítico: tu profesor no mira mucho por sus alumnos, pero por otra parte son errores sencillos de descubrir. No deberías esperar "dos meses" en que tu profesor te devuelva un ejercicio corregido. Más con ese tiempo ya deberías tener la suficiente experiencia para depurar un programa tan sencillo.
|
|
|
En línea
|
|
|
|
kuhi
Desconectado
Mensajes: 37
50 shadows of Kappa
|
Muchas gracias por tu respuesta. Si la verdad el profesor no está por nosotros y el material que tenemos está muy mal redactado, códigos con errores, explicaciones ilegibles, etc... pero bueno no vengo a criticar a nadie, en ese caso necesitaría 1 foro para mi solo. Sigo teniendo el mismo error. Este es el código actualizado: /* Crear un programa llamado vendedores que cree un array de 18 X 10 indicando que poseemos una empresa de 18 vendedores cada uno de los cuales vende 10 productos. El array almacena los ingresos obtenidos por cada vendedor en cada producto, de modo que un menú permite almacenar los ingresos, revisar el total de cada vendedor y obtener los ingresos totales */
#include <stdio.h> #include <stdlib.h> #include <conio.h>
int vendedores[18][10], producto; void almacenar_ingresos(); void revisar_total(); void total_total(); int menu(); int nvendedor, nproducto, ventas; int suma, resp, i, j; char oacute = 162, eacute = 130;
int main() { menu(); while(resp!=4) { switch(resp) { case 1: almacenar_ingresos(); break; case 2: revisar_total(); break; case 3: total_total(); break; } menu(); } }
int menu() { printf("Seleccione una opci%cn:\n\n",oacute); printf("[1] Almacenar ingresos de cada vendedor.\n"); printf("[2] Revisar el total de cada vendedor.\n"); printf("[3] Obtener los ingresos totales.\n"); printf("[4] Salir.\n\n"); scanf("%i",&resp); return resp; }
void almacenar_ingresos() { system("cls"); printf("Ha seleccionado: almacenar ingresos de cada vendedor.\n\n"); printf("Introduzca numero de vendedor: \n"); scanf("%i",&nvendedor); printf("Introduzca numero de producto: \n"); scanf("%i",&nproducto); printf("Cantidad vendida: \n"); scanf("%i",&ventas); vendedores[nvendedor][nproducto]=ventas; printf("Se han actualizado los valores con %sxito.\n\n",eacute); }
void revisar_total() { system("cls"); printf("Ha seleccionado: revisar el total de cada vendedor.\n\n"); printf("Introduzca el numero de vendedor: \n"); scanf("%i",&nvendedor); suma=0; for(i=0;i<10;i++) { suma = suma+vendedores[nvendedor][i]; } printf("El total del vendedor %i es: %i euros.",nvendedor,suma); }
void total_total() { system("cls"); printf("Ha seleccionado: obtener los ingresos totales.\n\n"); suma=0; for(i=0;i<18;i++) { for(j=0;j<10;j++) { suma = suma + vendedores[i][j]; } } printf("La cantidad total es de: %i euros.",suma); }
|
|
|
En línea
|
El conocimiento no ocupa lugar, somos libres de saber cuánto queramos...
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
El otro problema que podrías tener es el uso del include conio.h. Muy pocos compiladores lo soportan, además no usas ninguna función de esta librería.
|
|
|
En línea
|
|
|
|
kuhi
Desconectado
Mensajes: 37
50 shadows of Kappa
|
tampoco, lo he probado y es lo mismo. edito: me han pasado el ejercicio corregido y después de comparar los códigos 4 veces, mi código es idéntico al corregido, exceptuando que yo quité el conio haciendo caso a vuestros comentarios, y el euro porque supera el 255 del char. Lo cual no afecta. Que puede estar pasando? No es la primera vez que me pasa que comparo dos códigos completamente idénticos y uno funciona y el otro no. Este es el mio: /* Crear un programa llamado vendedores que cree un array de 18 X 10 indicando que poseemos una empresa de 18 vendedores cada uno de los cuales vende 10 productos. El array almacena los ingresos obtenidos por cada vendedor en cada producto, de modo que un menú permite almacenar los ingresos, revisar el total de cada vendedor y obtener los ingresos totales */
#include <stdio.h> #include <stdlib.h> #include <conio.h>
int vendedores[18][10], producto; void almacenar_ingresos(); void revisar_total(); void total_total(); int menu(); int nvendedor, nproducto, ventas; int suma, resp, i, j; char oacute = 162, eacute = 130;
void main() { resp=menu(); while(resp!=4) { switch(resp) { case 1: almacenar_ingresos(); break; case 2: revisar_total(); break; case 3: total_total(); break; } resp=menu(); } }
int menu() { printf("Seleccione una opci%cn:\n\n",oacute); printf("[1] Almacenar ingresos de cada vendedor.\n"); printf("[2] Revisar el total de cada vendedor.\n"); printf("[3] Obtener los ingresos totales.\n"); printf("[4] Salir.\n\n"); scanf("%i",&resp); return resp; }
void almacenar_ingresos() { system("cls"); printf("Ha seleccionado: almacenar ingresos de cada vendedor.\n\n"); printf("Introduzca numero de vendedor: \n"); scanf("%i",&nvendedor); printf("Introduzca numero de producto: \n"); scanf("%i",&nproducto); printf("Cantidad vendida: \n"); scanf("%i",&ventas); vendedores[nvendedor][nproducto]=ventas; printf("Se han actualizado los valores con %sxito.\n\n",eacute); }
void revisar_total() { system("cls"); printf("Ha seleccionado: revisar el total de cada vendedor.\n\n"); printf("Introduzca el numero de vendedor: \n"); scanf("%i",&nvendedor); suma=0; for(i=0;i<10;i++) { suma = suma+vendedores[nvendedor][i]; } printf("El total del vendedor %i es: %i euros.",nvendedor,suma); }
void total_total() { system("cls"); printf("Ha seleccionado: obtener los ingresos totales.\n\n"); suma=0; for(i=0;i<18;i++) { for(j=0;j<10;j++) { suma = suma + vendedores[i][j]; } } printf("La cantidad total es de: %i euros.",suma); } Y este es el corregido: /* Crear un programa llamado vendedores que cree un array de 18 X 10 indicando que poseemos una empresa de 18 vendedores cada uno de los cuales vende 10 productos. El array almacena los ingresos obtenidos por cada vendedor en cada producto, de modo que un menú permite almacenar los ingresos, revisar el total de cada vendedor y obtener los ingresos totales */ #include <stdio.h> #include <stdlib.h> #include <conio.h> int vendedores[18][10], producto; void almacenar_ingresos(); void revisar_total(); void total_total(); int menu(); int nvendedor, nproducto, ventas; int suma, resp, i, j; char oacute = 162, euro = 8364, eacute = 130; void main() { resp=menu(); while(resp!=4) { switch(resp) { case 1: almacenar_ingresos(); break; case 2: revisar_total(); break; case 3: total_total(); break; } resp=menu(); } } int menu() { printf("Seleccione una opci%cn:\n\n",oacute); printf("[1] Almacenar ingresos de cada vendedor.\n"); printf("[2] Revisar el total de cada vendedor.\n"); printf("[3] Obtener los ingresos totales.\n"); printf("[4] Salir.\n\n"); scanf("%i",&resp); return resp; } void almacenar_ingresos() { system("cls"); printf("Ha seleccionado: almacenar ingresos de cada vendedor.\n\n"); printf("Introduzca numero de vendedor: \n"); scanf("%i",&nvendedor); printf("Introduzca numero de producto: \n"); scanf("%i",&nproducto); printf("Cantidad vendida: \n"); scanf("%i",&ventas); vendedores[nvendedor][nproducto] = ventas; printf("Se han actualizado los valores con %cxito.\n\n",eacute); } void revisar_total() { system("cls"); printf("Ha seleccionado: revisar el total de cada vendedor.\n\n"); printf("Introduzca el numero de vendedor: \n"); scanf("%i",&nvendedor); suma=0; for(i=0;i<10;i++) { suma = suma+vendedores[nvendedor][i]; } printf("El total del vendedor %i es: %i%c",nvendedor,suma,euro); } void total_total() { system("cls"); printf("Ha seleccionado: obtener los ingresos totales.\n\n"); suma=0; for(i=0;i<18;i++) { for(j=0;j<10;j++) { suma = suma + vendedores[i][j]; } } printf("La cantidad total es de: %i%c",suma,euro); }
|
|
« Última modificación: 13 Abril 2017, 10:35 am por kuhi »
|
En línea
|
El conocimiento no ocupa lugar, somos libres de saber cuánto queramos...
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Copia los errores y warnings que te da el compilador.
|
|
|
En línea
|
|
|
|
kuhi
Desconectado
Mensajes: 37
50 shadows of Kappa
|
Hola, ya está solucionado, el error está en que seguía teniendo %s en las tildes en vez de %c. Muchas gracias por vuestra ayuda de verdad! <3
|
|
|
En línea
|
El conocimiento no ocupa lugar, somos libres de saber cuánto queramos...
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Ayuda] Ejercicio C 100
Ejercicios
|
Dem0ny
|
2
|
6,380
|
19 Diciembre 2007, 22:45 pm
por Dem0ny
|
|
|
Ayuda co un ejercicio de C#
.NET (C#, VB.NET, ASP)
|
hitori batusai
|
2
|
5,732
|
22 Febrero 2008, 01:53 am
por hitori batusai
|
|
|
Ayuda con ejercicio de VB
Programación Visual Basic
|
guada_sp
|
5
|
3,773
|
8 Marzo 2008, 02:54 am
por jackl007
|
|
|
Ayuda con ejercicio
.NET (C#, VB.NET, ASP)
|
elbrunosimpson
|
4
|
3,982
|
4 Septiembre 2008, 23:16 pm
por Meta
|
|
|
Ayuda ejercicio de Pascal, cuando uno no lo ve claro pide ayuda
Programación General
|
manu3742
|
1
|
3,848
|
31 Marzo 2011, 15:43 pm
por d(-_-)b
|
|