[ Foro de C++ ]
#include <iostream>
#include <stdlib.h>
#include <math.h>
//saul oscar soto carvajal A23714-0
using namespace std;
class super{
private :
float q[50];
float e[50];
int w;
public:
void leer();
void mayores();
void multiplos();
void rango();
void orden();
};
void super::leer(){
int r;
cout<<"Cuanta cantidad de productos registrara:";
cin>>w;
for(int c=1;c<=w;c++){
do{
cout<<"Ingrese la cantidad del producto "<<c<<":";
cin>>r;
q[c]=r;
}while(r<0);
}
}
void super::mayores(){
int g,k;
g=1;
for(int c=1;c<=w;c++){
if(q[c]>5){
k=q[c];
e[c]=k;
g++;
}else{}
}
cout<<endl<<"Vector total:";
for(int c=1;c<=w;c++){
cout<<q[c]<<"/";}
cout<<endl<<"Vector de los mayores a 5:";
if(g>=1){
for(int c=2;c<=g;c++){
cout<<e[c]<<"/";
}
}else{
cout<<"no hay vector ";
}
}
void super::rango (){
cout<<endl<<"entre el rango de 3 a 10 "<<endl;
for(int c=1;c<=w;c++){
if(q[c]>=3 & q[c]<=10){
cout<<" posicion "<<c<<" ,";
}
}
cout<<endl;
}
void super::orden(){
cout<<endl<<"el vector ordenado es:";
int s,g;
for (int c=1;c<=g;c++)
{
for(int j=1;j<=g;j++)
{
if(e[j]>e[j+1])
{
s=e[j];
e[j]=e[j+1];
e[j+1]=s;
}
}
}
for(int c=1;c<=g;c++) {
cout<<"[ "<<e[c]<<" ]";
}
}
void super::multiplos(){
float r=0,k;
for(int c=1;c<=w;c++){
if(q[c] % 3 == 0){
r=r+q[c];
k++;
}
}
r=r/k;
cout<<"El promedio es de "<<r<<endl;
}
int main ()
{
super reg;
reg.leer();
reg.mayores();
reg.multiplos();
reg.rango();
reg.orden();
return 0;
}
el error de la linea 90 es que al operador % no se puede poner un float (q[c]). debe ser un int.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)