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

Problema de ejecución en c

Estas en el tema de Problema de ejecución en c en el foro de C/C++ en Foros del Web. Estoy batallando con un while, no hay error de compilacion, si pongo un if me funciona mero el resultado no es lo que quiero, necesito ...
  #1 (permalink)  
Antiguo 11/11/2014, 21:37
 
Fecha de Ingreso: junio-2011
Mensajes: 19
Antigüedad: 12 años, 10 meses
Puntos: 0
Problema de ejecución en c

Estoy batallando con un while, no hay error de compilacion, si pongo un if me funciona mero el resultado no es lo que quiero, necesito el while para que detenga el contador y me indique la casilla donde se encuentra el valor de la variable mayor que expreso en este codigo

#include <stdio.h>
#include <stdlib.h>
#include <iostream>

int main(){

int n,x=0, r,cont=0;
printf("Cantidad de objetos : ");
scanf("%d",&n);
printf("Restriccion : ");
scanf("%d",&r);
float c[n],b[n],i[n];
float apuntador = 0;
int t;
int solucion[n];
for(t=0;t<n;t++){
solucion[t]=0;
}
printf("\n---<<<<<Ingrese los datos >>>>>---- ");
for(int x=0;x<n;x++){
printf("\n\n\tCosto del objeto %d = ", x+1);
scanf("%f.2",&c[x]);
printf("\n\tValor del objeto %d = ",x+1);
scanf("%f.2",&b[x]);
printf("\n----Objeto agregado -----\n", x+1);
i[x] = c[x] / b[x];
printf("Cociente : [%f]",i[x]);
}

float mayor= 0;
int d;
for (int x=0;x<n ; x++){
if(i[x] > mayor){
mayor = i[x];
solucion[x]=i[x];
if(mayor > r){
i[x] = 0;
mayor=i[0];
x=0;
}
}
}

i[x]=0;
for(x=0;x<n;x++){
while(i[x] != mayor){ // es aqui el problema
cont++; // necesito 2 valores , el valor de
} //mayor que ya lo tengo, y su respectivo lugar en el arreglo i[x], cuando ejecuto me traba el programa sin hacer nada.

printf("\n---> Mayor = %d",cont);

}



printf("\n===========================\n");
printf(" \nObjeto con mejor relacion Costo-Beneficio: #%d \ncon cociente de [%f] \n",cont,mayor);


}
  #2 (permalink)  
Antiguo 12/11/2014, 01:07
Avatar de leosansan  
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años
Puntos: 49
Respuesta: Problema de ejecución en c

Mira a ver si así funciona:

Código C++:
Ver original
  1. for ( x = 0 , cont = 1 ; x < n ; x++ ) {
  2.   if ( i[x] != mayor) cont++;
  3.   else  break ;
  4. }
  5. printf("\n---> Mayor = %d",cont);

Fíjate en cont que la inicio en 1, para que dé la posición correcta, a no ser que consideres la primera como cero. Y sobra el " i[x]=0; " previo a lo anterior.

Por cierto, te falta el return de main al final.

¡¡¡Saluditos!!!


Última edición por leosansan; 12/11/2014 a las 01:15
  #3 (permalink)  
Antiguo 12/11/2014, 19:39
 
Fecha de Ingreso: junio-2011
Mensajes: 19
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problema de ejecución en c

Muchas gracias! eso me resuelve ese detalle, saludos!

Etiquetas: arreglo, funcion, int, programa
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 12:39.