Hola, foro. Soy nuevo en el foro registrado pero llevo leyendo este foro desde que me apegue a la programacion. Recientemente me dieron un problema que dice asi
Leer n valores, encontrar el menor, el mayor, el valor promedio de los n valores, mostrar el vector y el valor menor, el mayor, y el promedio de los n valores. En C, he encontrado algunos ejemplos en C y solo los encuentro en C++. Esto es lo que llevo del codigo a la fecha :/
Citar#include <stdio.h>
#include <stdlib.h>
int auxiliar (int V[50], int n);
int main (){
int V[50], n, i;
printf ("Este programa lee vectores de hasta 50 datos\n");
printf ("ingresa n");
scanf ("%d", &n);
if (n<0||n>50)
printf ("Lo siento, ingresa valores posibles\n");
else{
for (i=0;i<n;i++){
printf ("ingresa V[%d] ", i+1);
scanf ("%d", &V);
}
for(i=0;i<n;i++){
auxiliar (V, n);
}
printf("El menor es %d", V[0]);
printf("El mayor es %d", V[n-1]);
}
return 0;
}
int auxiliar (int V[50], int n){
int i,j,aux;
for (j=1;j<n;j++)
for (i=0; i<n-1; i++){
if (V[i+1]<V){
aux = V[i+1];
V[i+1]= V;
V= aux;
}
}
}
El programa me manda error y se cierra, alguien podria ayudarme dandome una idea de lo que me falta y del porque se me cierra, saludos!
Podrías hacerlo en c++ de la siguiente forma ...
#include <iostream>
/*
Leer n valores, encontrar el menor, el mayor, el valor promedio de los n valores, mostrar el vector y el valor menor, el mayor, y el promedio de los n valores
*/
using namespace std;
int mayor(int *,int);
int menor(int *,int);
float promedio(int *,int);
int main()
{
int *vector;
int n;
cout<<"Ingrese cantidad de valores : ";cin>>n;
cout<<endl;
vector=new int[n]; //reservo memoria dinamica de n enteros
for(int i=0;i<n;i++)
{
cout<<"Ingrese elemento "<<i+1<<":";cin>>vector[i];
cout<<endl;
}
int may=mayor(vector,n);
int men=menor(vector,n);
float prom=promedio(vector,n);
delete []vector; //borro memoria dinamica reservada..
cout<<"Mayor : "<<may<<endl<<"Menor : "<<men<<endl<<"Promedio : "<<prom<<endl;
return 0;
}
int mayor(int *arreglo,int longitud)
{
int may=-99999;
for(int i=0;i<longitud;i++)
{
if(arreglo[i]>may)may=arreglo[i];
}
return may;
}
int menor(int *arreglo,int longitud)
{
int min=99999;
for(int i=0;i<longitud;i++)
{
if(arreglo[i]<min)min=arreglo[i];
}
return min;
}
float promedio(int *arreglo,int longitud)
{
float prom;
for(int i=0;i<longitud;i++)
{
prom=prom+arreglo[i];
}
return (prom/longitud);
}