problema con arrays y funciones

Iniciado por Meylar, 4 Octubre 2011, 05:05 AM

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

Meylar

Hola, ya trate mucho de entender porque no me copila este programa, y no logro dar con la respuesta >:(, eh visto muchos ejemplos, y aun así no entiendo cual es el problema; agradezco de antemano a quien me ayude. Codifico con DevC++:

#include <stdio.h>
#include <conio.h>
#define n 1000

float leer(int dime);
void calcular(float vec1[], float vec2[], int dime);

int main()
{
     float uno, dos, vec2[n];
     float vec1[n];
     int dime;

     puts("Digite la dimension de los vectores:");
     scanf("%i", &dime);
     while(dime<0)
     {
                  puts("eRROR VUELVA INTENTARLO");
                  scanf("%i", &dime);
      }
     
     puts("Digite el primer vector");
     uno=leer(dime);
     puts("Digite el segundo vector");
     dos=leer(dime);
     calcular(uno, dos, dime);
     
     getch ();
     return 0;
}

float leer(int dime)
{
      int i;
      float vector[n];
      puts("Digete las correspondientes posiciones, dando Intro despues de cada elemento");
      for(i=0; i=dime; i++)
      {
              scanf("%f", &vector);
       }
      return(vector[n]);                    
 }
 
void calcular(float vec1[], float vec2[], int dime)
{
    int u, i;
    u=0;
    for(i=0;i=dime; i++)
    {
            if(vec1==vec2)
                 u++;
     }
    if(u==dime)
       printf("Los siguientes vectores son iguales:");
     
    else
          printf("Los vectores NO SON IGUALES");
         
    for(i=0;i=dime; i++)
                 {
                    printf("\n\n %f",vec1);
                   }
     for(i=0; i=dime; i++)
       {
                    printf("\n\n %f",vec2);
     }
    getch();
}

LearningSpanishProgrammer

Debe usar la tag "code" cuando vaya a escribir código..

No voy hablar la solucione, pero voy apuntar algunos erros.


void calcular(float vec1[], float vec2[], int dime)
{
    int i;
    int u=0;  /////////////////////!!! Mejor, no?
    for(i=0;i=dime; i++) /////////////////////!!! Debe usar == o <
    {
            if(vec1==vec2)
                 u++;
     }
    if(u==dime)
       printf("Los siguientes vectores son iguales:");      
    else
          printf("Los vectores NO SON IGUALES");
         
     
    for(i=0;i=dime; i++)  /////////////////////!!! No '='
    {
                    printf("\n\n %f",vec1);
     }
     for(i=0; i=dime; i++)  /////////////////////!!! No '='
     {
                    printf("\n\n %f",vec2);
     }
    getch();
}



Estoy un poco cansado, tal vez mañana puedo ver esto con mas calma.
Estoy aprendiendo español, y tu estas aprendiendo programación

Meylar

OK, ya modifique el programa tomando en cuenta las observaciones que el compañero me sugirió. Me dice este error:

cannot convert `float' to `float*' for argument `1' to `void calcular(float*, float*, int)'  :-( 

LearningSpanishProgrammer

Tiene un error en esta declaración

float uno, dos, vec2[n];


Tu estas declarando dos floats llhamados 'uno' y 'dos', tambien declara uno arreglo llhamado vec2 com tamaño 'n'.
Estoy aprendiendo español, y tu estas aprendiendo programación