Nuevo problema

Iniciado por kayron8, 31 Marzo 2013, 14:07 PM

0 Miembros y 1 Visitante están viendo este tema.

kayron8

Hola buenos días, pues aquí tengo otro ejercicio problemático, espero que me puedan ayudar (me aparece todo 0 de nuevo):

La práctica consiste en implementar una aplicación usando funciones.
El programa en C gestionará la realización de determinadas operaciones en un vector de enteros de MAX (6, per ejemplo) posiciones:
 • Introducción de todos los elementos del vector (Altas).
 • Visualización de todos los elementos (Listado).
 • Visualización del elemento que se encuentra en una determinada posición (Consulta por    
   Posición).
 • Visualizar la suma total de los elementos del vector (Suma)
 • Visualizar la media aritmética de los elementos del vector (Media)
 • Visualizar el valor máximo, mínima y la media (MaxMedMin)

Se requiere diseñar el programa de forma modular, de manera que cada función se encargue de manipular los datos de la forma apropiada.

Se nos exige que haya como mínimo les siguientes acciones y funciones:
 • Función InicializarVector  (todos los valores a 0)
 • Función VisualizarMenu
 • Función Listado
 • Función ConsultarPosicion
 • Función Suma
 • Función Media
 • Función MaxMedMin

El código que llevo por ahora es el siguiente (sé que está en catalán, es para no andar traduciéndolo y que la vaya liando por ahí en medio, aun y así creo que es entendible):
#include<stdio.h>
#include<stdlib.h>

//Prototips
void InicialitzarVector(int vector[],int gran);
void VisualitzarMenu(int vector[],int gran);
void ConsultarPosicio(int vector[],int gran);
void Suma(int vector[],int suma);
void Mitjana(int vector[],int gran);
void MaxMitMin(int vector[],int gran);

//Bloc principal    
int main(){
int vector[6]={8,4,2,0,1,5},num=6;

InicialitzarVector(vector,num);
VisualitzarMenu(vector,num);
ConsultarPosicio(vector,num);
Suma(vector,num);
Mitjana(vector,num);
MaxMitMin(vector,num);

system("pause");
}

//Funcions
//Inicialitzem el vector a 0
void InicialitzarVector(int vector[],int gran){
int i=0;
 for(i=0;i<gran;i++)
     vector[i]=0;  
}

//Printem el menú
//Llistem els elements del vector
void VisualitzarMenu(int vector[],int gran){
int i=0;
printf("El vector conte els seguents elements: ");
for(i=0;i<gran;i++)
    printf("%d",vector[i]);  
}

//Mostrem la posició del vector demanada
void ConsultarPosicio(int vector[],int gran){
int i=0;
printf("\nIntrodueix la posicio que desitges comprovar: \n");
scanf("%d",&i);
printf("La posicio %d conte el valor %d \n",i,vector[i]);    
}

//Suma de tots els elements del vector
void Suma (int vector[],int gran){
int i=0,suma=0;
 for(i=0;i<gran;i++)
     suma=suma+vector[i];
   printf("La suma es: %d \n",suma);
}

//Mitjana de tots els elements del vector
void Mitjana (int vector[],int gran){
int i=0,mitjana=0,suma=0;    
  for(i=0;i<gran;i++){
      suma=suma+vector[i];
  }
   mitjana= suma/i ;
   printf("La mitjana es: %d \n",mitjana);      
}

//Calculem el màxim, la mitjana i el màxim valor del vector
void MaxMitMin (int vector[],int gran){    
int i=0,mitjana=0,max=0,min=50;
   for(i=0;i<gran;i++){
     if (vector[i]>max)
       max=vector[i];
     else if (vector[i]<min)
       min=vector[i];    
   }
printf("El maxim es: %d \n",max);
printf("El minim es: %d \n",min);
printf("La mitjana es: %d \n",mitjana);
}


De nuevo, muchas gracias por su tiempo y ayuda :)
¡Salu2 a to2!

avesudra

#1
Me extraña que no te hayas dado cuenta, si ya has inicializado el vector con los valores que tú has querido, no hace falta llamar a la función InicialitzarVector ya que te vuelve a poner todos los elementos a 0 independientemente del valor que le hayas asignado, es como si hiciese esto:
int variable = 5;
//Inicializar variable
variable = 0;
Regístrate en

kayron8

Claro ese es el problema que no logro entender del ejercicio, la primera función que se nos exige, es que pongamos todos los elementos del vector a 0.

Saludos :D
¡Salu2 a to2!

avesudra

Pues eso pero después, tienes que introducir los elementos del vector tal y como dice en este punto:
    • Introducción de todos los elementos del vector (Altas).
Se les habrá olvidado ponerlo pero es que no tiene ninguna lógica, primero inicializas todos los elementos del vector a 0 , y después le pides al usuario que vaya introduciendo valores hasta completar el tamaño del vector.
Regístrate en

kayron8

Bueno pues dejo la función comentada para que vea el profe que la tengo hecha pero que no tiene mucha lógica.

Gracias por todo :)
¡Salu2 a to2!

avesudra

Cita de: kayron8 en 31 Marzo 2013, 14:34 PM
Bueno pues dejo la función comentada para que vea el profe que la tengo hecha pero que no tiene mucha lógica.

Gracias por todo :)
¡¡¡Pero tienes que introducir los elementos del vector!!! Haz esa función también y la pones detrás de la de inicializar todo a 0 así te quedas más tranquilo.
Regístrate en

kayron8

#6
Si hombre, si, tranquilo xD.
El caso es que ya hice esa función y me sale un error que no comprendo :S

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

//Prototips
void InicialitzarVector(int vector[],int gran);
void DemanaValors(int vector[],int gran);
void VisualitzarMenu(int vector[],int gran);
void ConsultarPosicio(int vector[],int gran);
void Suma(int vector[],float suma);
void Mitjana(int vector[],float gran);
void MaxMitMin(int vector[],float gran);

//Bloc principal    
int main(){
int vector[6],num=6;

InicialitzarVector(vector,num);
DemanaValors(vector,num);
VisualitzarMenu(vector,num);
ConsultarPosicio(vector,num);
Suma(vector,num);
Mitjana(vector,num);
MaxMitMin(vector,num);

system("pause");
}

//Funcions
//Inicialitzem el vector a 0
void InicialitzarVector(int vector[],int gran){
int i=0;
 for(i=0;i<gran;i++)
     vector[i]=0;  
}

//Demanem els elements del vector a l'usuari
void DemanarValors(int vector[],int gran){
int i=0;
for (i=0;i<gran;i++){
printf("Introdueix el valor %d: ",i+1);
   scanf("%d",&vector[i]);
}

//Printem el menú
//Llistem els elements del vector
void VisualitzarMenu(int vector[],int gran){
int i=0;
printf("El vector conte els seguents elements: ");
for(i=0;i<gran;i++)
    printf("%d",vector[i]);  
}

//Mostrem la posició del vector demanada
void ConsultarPosicio(int vector[],int gran){
int i=0;
printf("\nIntrodueix la posicio que desitges comprovar: \n");
scanf("%d",&i);
printf("La posicio %d conte el valor %d \n",i,vector[i]);    
}

//Suma de tots els elements del vector
void Suma(int vector[],float gran){
int i=0;
float suma=0;
 for(i=0;i<gran;i++)
     suma=suma+vector[i];
   printf("La suma es: %.2f \n",suma);
}

//Mitjana de tots els elements del vector
void Mitjana(int vector[],float gran){
int i=0;
float mitjana=0,suma=0;    
  for(i=0;i<gran;i++){
      suma=suma+vector[i];
  }
   mitjana= suma/i ;
   printf("La mitjana es: %.2f \n",mitjana);      
}

//Calculem el màxim, la mitjana i el màxim valor del vector
void MaxMitMin(int vector[],float gran){    
int i=0;
float mitjana=0,max=0,min=50;
   for(i=0;i<gran;i++){
     if (vector[i]>max)
       max=vector[i];
     else if (vector[i]<min)
       min=vector[i];    
   }
}
printf("El maxim es: %.2f \n",max);
printf("La mitjana es: %.2f \n",mitjana);
printf("El minim es: %.2f \n",min);
}


El error que me aparece al compilarlo es:
In function 'DemanarValors': [Error] expected declaration or statement at end of input

Muchas gracias :D
¡Salu2 a to2!

kayron8

Cita de: kayron8 en 31 Marzo 2013, 16:45 PM
Si hombre, si, tranquilo xD.
El caso es que ya hice esa función y me sale un error que no comprendo :S

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

//Prototips
void InicialitzarVector(int vector[],int gran);
void DemanaValors(int vector[],int gran);
void VisualitzarMenu(int vector[],int gran);
void ConsultarPosicio(int vector[],int gran);
void Suma(int vector[],float suma);
void Mitjana(int vector[],float gran);
void MaxMitMin(int vector[],float gran);

//Bloc principal    
int main(){
int vector[6],num=6;

InicialitzarVector(vector,num);
DemanaValors(vector,num);
VisualitzarMenu(vector,num);
ConsultarPosicio(vector,num);
Suma(vector,num);
Mitjana(vector,num);
MaxMitMin(vector,num);

system("pause");
}

//Funcions
//Inicialitzem el vector a 0
void InicialitzarVector(int vector[],int gran){
int i=0;
 for(i=0;i<gran;i++)
     vector[i]=0;  
}

//Demanem els elements del vector a l'usuari
void DemanarValors(int vector[],int gran){
int i=0;
for (i=0;i<gran;i++){
printf("Introdueix el valor %d: ",i+1);
   scanf("%d",&vector[i]);
}

//Printem el menú
//Llistem els elements del vector
void VisualitzarMenu(int vector[],int gran){
int i=0;
printf("El vector conte els seguents elements: ");
for(i=0;i<gran;i++)
    printf("%d",vector[i]);  
}

//Mostrem la posició del vector demanada
void ConsultarPosicio(int vector[],int gran){
int i=0;
printf("\nIntrodueix la posicio que desitges comprovar: \n");
scanf("%d",&i);
printf("La posicio %d conte el valor %d \n",i,vector[i]);    
}

//Suma de tots els elements del vector
void Suma(int vector[],float gran){
int i=0;
float suma=0;
 for(i=0;i<gran;i++)
     suma=suma+vector[i];
   printf("La suma es: %.2f \n",suma);
}

//Mitjana de tots els elements del vector
void Mitjana(int vector[],float gran){
int i=0;
float mitjana=0,suma=0;    
  for(i=0;i<gran;i++){
      suma=suma+vector[i];
  }
   mitjana= suma/i ;
   printf("La mitjana es: %.2f \n",mitjana);      
}

//Calculem el màxim, la mitjana i el màxim valor del vector
void MaxMitMin(int vector[],float gran){    
int i=0;
float mitjana=0,max=0,min=50;
   for(i=0;i<gran;i++){
     if (vector[i]>max)
       max=vector[i];
     else if (vector[i]<min)
       min=vector[i];    
   }
}
printf("El maxim es: %.2f \n",max);
printf("La mitjana es: %.2f \n",mitjana);
printf("El minim es: %.2f \n",min);
}


El error que me aparece al compilarlo es:
In function 'DemanarValors': [Error] expected declaration or statement at end of input

Muchas gracias :D

¡Ya lo arreglé!
¡Salu2 a to2!

avesudra

Estoy tranquilo jajaja , bueno el error era que le faltaba la llave de cierre de la función que hay que decirlo por si alguien tiene el mismo problema y no lo ve  ;)

¡Un saludo!
Regístrate en