Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Sumar vector por una condicion

Estas en el tema de Sumar vector por una condicion en el foro de C/C++ en Foros del Web. Bueno ante todo hola a todos soy un poco nuevo en esto & quiero aprender un poco y si me pueden ayudar con este problema ...
  #1 (permalink)  
Antiguo 11/07/2015, 15:41
 
Fecha de Ingreso: julio-2015
Mensajes: 15
Antigüedad: 8 años, 9 meses
Puntos: 0
Sumar vector por una condicion

Bueno ante todo hola a todos soy un poco nuevo en esto & quiero aprender un poco y si me pueden ayudar con este problema para poder agregarlo a mi programa gracias

lo que me gustaria agregar es indicar el puntaje total obtenido por los concursantes mayor a 17 años & con una gdd = grado de dificultad < 3.1 como podria sumar el resultado de estos vectores .

//mi codigo
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.    
  6.     unsigned int clavad,edad,acum1 =0;
  7.     unsigned int i = 0,cont=0,j = 0;
  8.     float puntajes[7],puntajet = 0,puntaje = 0,mayor,menor;
  9.     float gdd,promedio = 0,acum = 0;
  10.     unsigned char nombre[20];
  11.    
  12.     printf("cuantos clavadistas participaran\n");
  13.     scanf("%d",&clavad);
  14.    
  15.         for( i = 0; i < clavad ; i++ ){
  16.        
  17.         printf("\nNombre del clavadista\n");
  18.         scanf("%s",&nombre);
  19.         fflush (stdin);
  20.         printf("Deme la edad del clavadista : %s \n",nombre);
  21.         scanf("%d",&edad);
  22.         printf("Grado de dificultad con el que saltara el clavadista : %s \n",nombre);
  23.         scanf("%f",&gdd);
  24.         if( edad > 17 && gdd <= 3.1){
  25.         cont = cont + 1;    }
  26.        
  27.         for(j = 0 ; j < 7 ; j++ ){
  28.         printf("Deme su calificacion del 1 a 10 \n");
  29.         scanf("%f",&puntajes[j]);
  30.        
  31.         acum = puntajes[0]+puntajes[1]+puntajes[2]+puntajes[3]+puntajes[4]+puntajes[5]+puntajes[6];
  32.        
  33.         }
  34.        
  35.        
  36.         mayor = puntajes[0];
  37.             for(j = 0 ; j < 7 ; j++ )
  38.             {
  39.                 if(mayor < puntajes[j]);
  40.                     mayor = puntajes[j];
  41.             }
  42.         menor = puntajes[0];
  43.             for(j = 0 ; j < 7 ; j++ )
  44.             {
  45.                 if(mayor > puntajes[j]);
  46.                     menor = puntajes[j];
  47.             }
  48.            
  49.         puntajet = ( acum * 0.6 ) * gdd;
  50.        
  51.         printf("\npuntaje acumulado del salto del clavadista %s es de : %.1f \n ",nombre,puntajet);
  52.         printf("\nPuntaje mayor de : %s fue de : %.1f \n",nombre,mayor);
  53.         printf("\nPuntaje menor del clavadista : %s fue de : %.1f\n",nombre,menor);
  54.    
  55.         }  
  56.  
  57.         printf("\nEl numero de participantes con edad mayor 17 & grado de dificultad menor o igual a 3.1 es de %d \n",cont);
  58.        
  59.         system("pause");
  60. }
//si esta mal optimizado & me quieren ayudar gracias :D

Última edición por veravluis; 11/07/2015 a las 15:55
  #2 (permalink)  
Antiguo 11/07/2015, 18:47
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Sumar vector por una condicion

Estas bastante cerca de la solución.

Algunos detalles:

Código:
if( edad > 17 && gdd <= 3.1){
        cont = cont + 1;    }
       
        for(j = 0 ; j < 7 ; j++ ){
        printf("Deme su calificacion del 1 a 10 \n");
        scanf("%f",&puntajes[j]);
       
        acum = puntajes[0]+puntajes[1]+puntajes[2]+puntajes[3]+puntajes[4]+puntajes[5]+puntajes[6];
       
        }
Este código no esta del todo bien.
La variable cont sólo la usaste al final para mostrar el numero de clavadistas con la condicion especificada. Esta variable la podrías aprovechar mas.

El for que usaste no es lo mas conveniente. No entiendo por qué pides 7 calificaciones.

Lo que podrías hacer es tener un arreglo de puntajes para los clavadistas mayores de 17 y con gdd menor a 3.1

Código:
int puntaje17[n];
.
.
.
if( edad > 17 && gdd <= 3.1){
printf("Deme su calificacion del 1 a 10 \n");
        scanf("%f",&puntaje17[cont]);
        cont = cont + 1;    }
//Al final calculas la suma
for(...)
acum += puntaje17[i];
Espero haberte ayudado.

Saludos
  #3 (permalink)  
Antiguo 12/07/2015, 11:35
 
Fecha de Ingreso: julio-2015
Mensajes: 15
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Sumar vector por una condicion

Cita:
Iniciado por Instru Ver Mensaje
Estas bastante cerca de la solución.

Algunos detalles:

Código:
if( edad > 17 && gdd <= 3.1){
        cont = cont + 1;    }
       
        for(j = 0 ; j < 7 ; j++ ){
        printf("Deme su calificacion del 1 a 10 \n");
        scanf("%f",&puntajes[j]);
       
        acum = puntajes[0]+puntajes[1]+puntajes[2]+puntajes[3]+puntajes[4]+puntajes[5]+puntajes[6];
       
        }
Este código no esta del todo bien.
La variable cont sólo la usaste al final para mostrar el numero de clavadistas con la condicion especificada. Esta variable la podrías aprovechar mas.

El for que usaste no es lo mas conveniente. No entiendo por qué pides 7 calificaciones.

Lo que podrías hacer es tener un arreglo de puntajes para los clavadistas mayores de 17 y con gdd menor a 3.1

Código:
int puntaje17[n];
.
.
.
if( edad > 17 && gdd <= 3.1){
printf("Deme su calificacion del 1 a 10 \n");
        scanf("%f",&puntaje17[cont]);
        cont = cont + 1;    }
//Al final calculas la suma
for(...)
acum += puntaje17[i];
Espero haberte ayudado.

Saludos
Buena ayuda pero creo que estoy haciendo algo mal me poder corregir?
gracias de antemano
//Aun no me suma el puntajet = puntaje total de las personas con esta condicion
Código HTML:
Ver original
  1. if( edad > 17 && gdd <= 3.1 )

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.    
  6.     unsigned int clavad,edad,n = 0;
  7.     unsigned int i = 0,cont=0,j = 0;
  8.     float puntajes[7],puntajet = 0,puntaje = 0,mayor,menor;
  9.     float gdd,promedio = 0,acum = 0;
  10.     unsigned char nombre[20];
  11.     int puntaje17[n],acum1 = 0;
  12.    
  13.     printf("cuantos clavadistas participaran\n");
  14.     scanf("%d",&clavad);
  15.    
  16.         for( i = 0; i < clavad ; i++ ){
  17.        
  18.         printf("\nNombre del clavadista\n");
  19.         scanf("%s",&nombre);
  20.         fflush (stdin);
  21.         printf("Deme la edad del clavadista : %s \n",nombre);
  22.         scanf("%d",&edad);
  23.         printf("Grado de dificultad con el que saltara el clavadista : %s \n",nombre);
  24.         scanf("%f",&gdd);
  25.         if( edad > 17 && gdd <= 3.1 ){
  26.         printf("Deme su calificacion del 1 a 10 \n");
  27.         scanf("%f",&puntaje17[cont]);
  28.         cont = cont + 1; }
  29.        
  30.         acum1 += puntaje17[i];
  31.        
  32.         for(j = 0 ; j < 7 ; j++ ){
  33.         printf("Deme su calificacion del 1 a 10 \n");
  34.         scanf("%f",&puntajes[j]);
  35.        
  36.         acum = puntajes[0]+puntajes[1]+puntajes[2]+puntajes[3]+puntajes[4]+puntajes[5]+puntajes[6];
  37.        
  38.         }
  39.        
  40.        
  41.         mayor = puntajes[0];
  42.             for(j = 0 ; j < 7 ; j++ )
  43.             {
  44.                 if(mayor < puntajes[j]);
  45.                     mayor = puntajes[j];
  46.             }
  47.         menor = puntajes[0];
  48.             for(j = 0 ; j < 7 ; j++ )
  49.             {
  50.                 if(mayor > puntajes[j]);
  51.                     menor = puntajes[j];
  52.             }
  53.            
  54.         puntajet = ( acum * 0.6 ) * gdd;
  55.        
  56.         printf("\npuntaje acumulado del salto del clavadista %s es de : %.1f \n ",nombre,puntajet);
  57.         printf("\nPuntaje mayor de : %s fue de : %.1f \n",nombre,mayor);
  58.         printf("\nPuntaje menor del clavadista : %s fue de : %.1f\n",nombre,menor);
  59.    
  60.         }  
  61.  
  62.         printf("\nEl numero de participantes con edad mayor 17 & grado de dificultad menor o igual a 3.1 es de %d \n",cont);
  63.         printf("\nEl puntaje total acumulado de los participantes fue : %.1f \n",acum1);   
  64.         system("pause");
  65. }

Última edición por veravluis; 12/07/2015 a las 11:56

Etiquetas: char, int, numero, programa, vector
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:04.