Stack Overflow en español Asked by Fragmentado on November 13, 2021
Me mandan a realizar un código en Lenguaje C que dice:
En una línea de taxis la cual trabaja de lunes a domingo, existen 6 >taxistas, se necesita llevar el control de las carreras que hace cada taxista >cada día, para ello se manejan los datos en una matriz y hacer lo siguiente:
- Cargar de valores la matriz
- Contar cuántas veces no se hizo carrera
- Sacar promedio de carreras por semana
Realizo la matriz pero no sé cómo contar los 0 ni el promedio semanal, puedo sacar el promedio del mes pero no por semana igual con los 0.
#include<locale.h>
#include<stdio.h>
int main(){
setlocale(LC_CTYPE, "Spanish");
int matriz[6][7], fila, columna, cont=0;
float prom;
for(fila=0; fila<6; fila++){
for(columna=0; columna<7; columna++){
printf("Taxista %d, Día de la semana %d, digite las carreras hechas: ", fila+1, columna+1);
scanf("%d", &matriz[fila][columna]);
if(matriz[fila][columna]<1){ //Para ir contando los 0
cont=cont+1;
}
}
}
printf("nn");
for(fila=0; fila<6; fila++){ //Para mostrar todo lo que se ingresó a la matriz
for(columna=0; columna<7; columna++){
printf("%d ", matriz[fila][columna]);
}
printf("n");
}
printf("nEn total no se hicieron %i carreras", cont);
return 0;
}
no sé cómo contar los 0
Los pasos son sencillos:
Dicho con código:
for( int taxista=0; taxista<6; taxista++ )
{
int total = 0;
for( int dia=0; dia<7; dia++ )
{
total += (matriz[taxista][dia] == 0); // <<--- 1
}
printf("El taxista %d no hizo carreras durante %d diasn", taxista, total);
}
Respecto al comentario que he puesto en el código:
total += (matriz[taxista][dia] == 0); // <<--- 1
Lo que hacemos aquí es aprovechar una característica del lenguaje. Las operaciones booleanas generan un valor entero que puede valer 0
(falso) o 1
(verdadero). Como nos interesa conocer el total de verdaderos, aprovechamos ese 1 para ir llevando el conteo.
puedo sacar el promedio del mes pero no por semana igual con los 0
Esto que dices es mentira por tres razones:
0
que dices que te dan problemas en el promedio semanal... si puedes con el del mes, el semanal es igual pero con menos díasni el promedio semanal
El promedio se calcula así:
Es decir, si un taxista presenta los siguientes valores:
5 0 3 7 0 0 9
El promedio sería:
(5 + 0 + 3 + 7 + 0 + 0 + 9) / 7 = 3
Espera... ¿y no da decimales?
Para obtener un resultado con decimales tienes que usar un tipo de dato que sea capaz de almacenar decimales (y no, int
no vale). Una operación entre dos int
descarta automáticamente cualquier decimal que se pudiese generar. Tienes que promocionar alguno de los valores involucrados en la operación a un tipo decimal para que la operación te devuelva decimales:
int a = 5;
int b = 2;
printf("%d %f", a/b, a/(float)b);
¿Y no pones código?
En este caso no, lo siento. Tu comentario respecto a los promedios me ha sonado a "me gustaría que alguien me hiciese la tarea" y yo, si quieres, te hago los deberes... pero entonces te tendría que cobrar por ello ya que te estaría dedicando mi tiempo en exclusiva a ti en vez de escribir respuestas que le sirviesen a más gente.
Answered by eferion on November 13, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP