none
error c2440 en c++ ¿nose cal es mi erro ayuda? RRS feed

  • Pregunta

  • #include <iostream>
    #include <conio.h>
    using namespace std;
    #define A 20
    #define B 20

    void cargarmatriz(int mat[A][B],int n,int m)
    {int i,j;
      for(i=0;i<n;i++)
      {for(j=0;j<m;j++)
       {cout<<"introducir elemento ["<<i++<<"]["<<j++<<"]";
        cin>>mat[i][j];
       }
      }
    }

    void mostrarmatriz(int mat[A][B],int n,int m)
    {int i,j;
      for(i=0;i<n;i++)
      {for(j=0;j<m;j++)
       {cout<<mat[i][j]<<"     ";
        cout<<endl; 
       }
      }
    }

    int sumadiagonal(int mat[A][B],int n,int m)
    {int i,suma=0;
       for(i=0;i<n;i++)
       {suma=suma+mat[i][i];}
       return(suma);
    }

    void sumacolumna (int mat[A][B],int n,int m)
    {int i,j,suma=0;
     for(i=0;i<n;i++)
      {for(j=0;j<m;j++)
       {suma = suma + mat[j][i];
        cout<<suma;
        }
       suma=0;
      }
    }

    void fibo(int n)
    {int i,c=0,a=-1,b=1;
      for(i=0;i<n;i++)
        { c=a+b;
          a=b;
          b=c;
        }
     }

    void cargarfibo(int mat[A][B],int n,int m)
    {int i,j,cont=1;
     for(i=0;i<n;i++)
      {for(j=0;j<m;j++)
        {mat[i][j]=fibo(cont);
         cont++;
        }
      }
    }
    void primo(int n)
    {int i,primo;
     for(i=1;i<n;i++)
     {if (i%2 != 0 || i == 2)
       primo =i;
     }
    }

    void cargarpatron(int mat[A][B],int n)
    {int i,j,par=2,contprimo=1,contfibo=1;
     for(i=0;i<n;i++)
       {mat[i][i]=par;
         par = par+2;
       }
     for(i=0;i<n;i++)
      {for(j=0;j<n;j++)
        {if(i<j)
           { mat[i][j]= primo(contprimo);
        contprimo++;
           }
      else 
      { mat[i][j]=fibo(contfibo);
        contfibo++;
           }
         
         }
      }
    }

    int main()
    {int mat[A][B],n,m,sumas,sumacolum,opcion;
    do{cout<<endl<<"----***-- MENU DE MATRICES -------**----";
       cout<<endl<<" 1.- Suma de los elementos de la diagonal";
       cout<<endl<<" 2.- Suma de la columna ";
       cout<<endl<<" 3.- Cargar de manera automatica con fibonacci";
       cout<<endl<<" 4.- Cargar diagonal PAR superior PRIMO inferior FIBONACCI";
       cout<<endl<<" 5.- salir"; 
       cout<<endl<<" seleccione opcion:";
       cin >> opcion;
       switch(opcion)
      { case 1 : cout<<"introducir numero de filas ";
    cin>>n;
    cout<<"introducir numero de columnas";
    cin>>m;
    cargarmatriz(mat,n,m);
    sumas=sumadiagonal(mat,n,m);
    cout<<"la suma de la diagonal es :"<<sumas;
    break;
    case 2 : cout<<"introducir numero de filas ";
    cin>>n;
    cout<<"introducir numero de columnas";
    cin>>m;
    cargarmatriz(mat,n,m);
        sumacolumna(mat,n,m);
        mostrarmatriz(mat,n,m);
    break;
        case 3 : cout<<"introducir numero de filas ";
    cin>>n;
    cout<<"introducir numero de columnas";
    cin>>m;
    cargarfibo(mat,n,m);
                 mostrarmatriz(mat,n,m);
    break;
    case 4 : cout<<"introducir numero de filas y colunas de una matriz cuadrada ";
    cin>>n;
    cargarpatron(mat,n);
    mostrarmatriz(mat,n,m);
    break;
       }
     }while (opcion!=5);

     getch();
     return(0);
    }
    sábado, 6 de abril de 2013 21:46

Respuestas

  • Las funciones fibo y primo, deben devolver un entero int, ahí estás colocando que no devuelven nada (void), ese es el principal error.
    Revisá esas funciones, no me queda claro que querés hacer con la función primo, ahí estás asignando si es primo el número a primo, pero para qué? no sirve de nada esa función, tendrías que devolver un true si es que es primo o no el número que recibís como parámetro, simplemente eso y en fibo tampoco hacés nada, que lográs asignando a las variables a y b? si después desaparecen.
    Saludos.

    BECKLESPINAX

    domingo, 7 de abril de 2013 15:42