Autor
|
Tema: Ayuda programa en C (Leído 1,550 veces)
|
samudiopabloe
Desconectado
Mensajes: 2
|
Hola que tal, necesitaria ayuda, estoy programando un trabajo practico en C, que debo entregar mañana, y no logro que compilen. ¿Podrían ayudarme a detectar el problema ? Les agradezco de antemano. El programa debe calcular EL IMPORTE TOTAL DE UNA FACTURA, Son 12 clientes ,(nro abonado random(999999)). 12 tarifas (random a cual le toque a cada cliente). cada TARIFA tiene un precio minimo, y una cantidad de llamadas libres.. El calculo que se debe imprimir es = Importe min + (llamadasTotal - Llamadas libres ). AQUI EL CODIGO : // aclaracion : el importe por llamada exedida es de 5 . #include <stdio.h> #include <stdlib.h> #include <conio.h> //defino f y c para MAT_GENERAL # define FILAS 2 # define COLUMNAS 12 void CARGAR (float [] [COLUMNAS], float) ; main(){ clrscr(); //declaro matriztarifas, 1fila:nro de tarifa, 2fila:costo minimo, 3fila: llam libres float MAT_TARIFAS[3][12] = {{1,2,3,4,5,6,7,8,9,10,11,12}, {10,20,30,40,50,60,70,80,90,100,}, {5,10,10,20,30,50,50,100,200,300,400} }; float MAT_GENERAL [FILAS] [COLUMNAS]; CARGAR (MATRIZ, FILAS); } // el inf carga random(hasta 999999para clientes y random (1000) para llam totales) void CARGAR (float MAT[] [COLUMNAS], int N ) { int i,j; for (i=0 ; i<n ; i++) { if (i==0) // verificar si el if comienza con 0, o 1.!!!!! { for (j =0; j<COLUMNAS; j++) { MAT[i][j] = random(999999); } } else { for (j= 0 ; j < columnas; j++) { mat[i][j]=random(1000); } } } }
Ya compila, Dejo el codigo de la primera parte, solo falta incluir una funcion que calcule e imprima los resultados, despues lo subo completo. #include <stdio.h> #include <stdlib.h> #include <conio.h> //defino f y c para MAT_GENERAL # define FILAS 3 # define COLUMNAS 12 void CARGAR (float [] [COLUMNAS], int) ; void main() { //declaro matriztarifas, 1fila:nro de tarifa, 2fila:costo minimo, 3fila: llam libres float MAT_TARIFAS[3][12] = {{1,2,3,4,5,6,7,8,9,10,11,12}, {10,20,30,40,50,60,70,80,90,100,}, {5,10,10,20,30,50,50,100,200,300,400} }; float MAT_GENERAL[FILAS] [COLUMNAS]; clrscr(); CARGAR (MAT_GENERAL, FILAS); } // el inf carga random(hasta 999999para clientes y random (1000) para llam totales) void CARGAR (float MAT[] [COLUMNAS], int n ) { int i,j; for (i=0 ; i<n ; i++) { if (i==0) // verificar si el if comienza con 0, o 1.!!!!! { for (j =0; j<COLUMNAS; j++) { MAT[i][j] = random(999); } } else { for (j= 0 ; j < COLUMNAS; j++) { MAT[i][j]=random(1000); } } } }
|
|
« Última modificación: 21 Junio 2014, 09:24 am por Eternal Idol »
|
En línea
|
|
|
|
MeCraniDOS
Desconectado
Mensajes: 337
Sr. Glass
|
Ya compila, Dejo el codigo de la primera parte, solo falta incluir una funcion que calcule e imprima los resultados, despues lo subo completo.
Que clase de compilador utilizas? Empiezas mal con esto void main
Utilizar conio es.. basura, pásate por aquí
http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.htmlLa función random está mal, lo primero es inicializar consrand (time(NULL));
Y la sintaxis sería, (limite inferior + rand() % limite superior - limite inferior)int algo = 1 + rand() % 10 - 1; //Generamos un aleatorio entre 1 y 10
Te falta incluir time.h#include <time.h>
La definición de la función CARGAR no tiene mucho sentido, pasas un entero 'n', pero estas pasando FILAS, que lo has definido antes
Cambia en el bucle de la función estofor (i=0 ; i<n ; i++)
por estofor (i=0 ; i<FILAS ; i++)
Y ya puedes cambiar la definición... Ya que has posteado tu código funcional, te digo como quedaría con las modificaciones que te he puesto antes:#include <time.h> #include <stdio.h> #include <stdlib.h> //defino f y c para MAT_GENERAL # define FILAS 3 # define COLUMNAS 12 void CARGAR (float [] [COLUMNAS]) ; int main() { //declaro matriztarifas, 1fila:nro de tarifa, 2fila:costo minimo, 3fila: llam libres float MAT_TARIFAS[3][12] = {{1,2,3,4,5,6,7,8,9,10,11,12}, {10,20,30,40,50,60,70,80,90,100}, {5,10,10,20,30,50,50,100,200,300,400}}; float MAT_GENERAL[FILAS] [COLUMNAS]; CARGAR (MAT_GENERAL); return 0; } // el inf carga random(hasta 999999para clientes y random (1000) para llam totales) void CARGAR (float MAT[] [COLUMNAS]) { int i=0,j=0; for (i=0 ; i<FILAS ; i++) { if (i==0) // verificar si el if comienza con 0, o 1.!!!!! { for (j =0;j<COLUMNAS;j++) { MAT[i][j] = 1 + random() % 998; } } else { for (j= 0;j < COLUMNAS;j++) { MAT[i][j]= 1 + random() % 999; } } } }
Saludos!
|
|
|
En línea
|
"La física es el sistema operativo del Universo" -- Steven R Garman
|
|
|
samudiopabloe
Desconectado
Mensajes: 2
|
Hola a todos muchísimas gracias a todos por sus aportes, nunca les agradecí anteriormente.
Que anden mas que bien ! saludos.
|
|
|
En línea
|
|
|
|
class_OpenGL
Desconectado
Mensajes: 437
Si usas Direct3D, no eres mi amigo :P
|
MeCraniDos. ¡Te faltan paréntesis! Aquí int algo = 1 + rand() % 10 - 1; //Generamos un aleatorio entre 1 y 10
Tendrías que escribir... int algo = 1 + rand() % (10 - 1); //Generamos un aleatorio entre 1 y 10
Porque si no, estarías sumando y restando 1 en la misma "equación" Entonces, la "fórmula" sería: random_number = min + rand()%(max - min); Siendo random_number el resultado, min el valor mínimo que puede ser el resultado y max siendo el número más alto que puede alcanzar el número aleatorio
|
|
|
En línea
|
| Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL |
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
AYUDA CON PROGRAMA
Diseño Gráfico
|
Luisango
|
1
|
2,488
|
17 Abril 2005, 13:25 pm
por Sub_Cero
|
|
|
ayuda con mi programa
Programación Visual Basic
|
nitrox
|
2
|
2,395
|
31 Julio 2005, 00:48 am
por Slasher-K
|
|
|
ayuda programa!!
Programación C/C++
|
rodrigo_103
|
4
|
3,425
|
16 Septiembre 2012, 21:58 pm
por rodrigo_103
|
|
|
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
|
Zodiak98
|
1
|
6,246
|
8 Diciembre 2013, 01:51 am
por Eleкtro
|
|
|
[AYUDA] Ayuda con NETCAT o cualquier otro programa similar
Dudas Generales
|
Noxware
|
0
|
2,204
|
16 Junio 2014, 18:13 pm
por Noxware
|
|