Problema con array

di il
1 risposte

Problema con array

Scusate io avvrei un picolo problema; ho fatto questo programmino in c++ per un esercizio a casa ma mi da vari errori

Codice:
#include <iostream>
#include <stdio.h>
using namespace std;

int sommav (int vett1[],int vett2[],int vett3[],int d);
int cvett (int d, int vett1 []);
int svett (int d, int vett1 []);

const int d=100;

int main()
{

int vett1 [d];
int vett2 [d];
int vett3 [d/2];

cout << cvett (d ,vett1);
cout << svett (d ,vett1);
cout << cvett (d ,vett2);
cout << svett (d ,vett2);
cout << sommav (vett1,vett2,vett3, d);

return 0;
}


int cvett ( int d, int vett1 [])
{
for (int i = 0 ; i<d ; i++)
{
cout << " Inserisci il" << i << "numero :";
cin >> vett1 ;
}
cout << endl;
return 0;
}


int svett (int d, int vett1 [])
{
for (int i = 0; i<d; i++)
{
cout << vett1 << ", ";
}
cout << endl;
return 0;
}


int cvett (int d, int vett2 [])
{
for (int i = 0 ; i<d ; i++)
{
cout << " Inserisci il" << i << "numero :";
cin >> vett2 ;
}
cout << endl;
return 0;
}


int svett (int d, int vett2 [])
{
for (int i = 0; i<d; i++)
{
cout << vett2 << ", ";
}
cout << endl;
return 0;
}


int sommav (int vett1 [], int vett2 [], int vett3 [], int d)
{
int t=0;
for (int i = 0 ; i<d ; i=i+2)
{
vett3[t] = vett1 + vett2 ;
t++;
}
cout << endl;
return 0;
}


int svett (int d, int vett3 [])
{
for (int i = 0; i<d; i++)
{
cout << vett3 << ", ";
}
cout << endl;
return 0;
}




Errori:
C:\Users\artur\Desktop\code\asdfgh\main.cpp||In function 'int cvett(int, int*)':|
C:\Users\artur\Desktop\code\asdfgh\main.cpp|51|error: redefinition of 'int cvett(int, int*)'|
C:\Users\artur\Desktop\code\asdfgh\main.cpp|28|error: 'int cvett(int, int*)' previously defined here|
C:\Users\artur\Desktop\code\asdfgh\main.cpp||In function 'int svett(int, int*)':|
C:\Users\artur\Desktop\code\asdfgh\main.cpp|63|error: redefinition of 'int svett(int, int*)'|
C:\Users\artur\Desktop\code\asdfgh\main.cpp|40|error: 'int svett(int, int*)' previously defined here|
C:\Users\artur\Desktop\code\asdfgh\main.cpp||In function 'int svett(int, int*)':|
C:\Users\artur\Desktop\code\asdfgh\main.cpp|87|error: redefinition of 'int svett(int, int*)'|
C:\Users\artur\Desktop\code\asdfgh\main.cpp|40|error: 'int svett(int, int*)' previously defined here|
||=== Build finished: 6 errors, 0 warnings ===|

1 Risposte

  • Re: Problema con array

    Il problema è semplice da individuare. Il compilatore ti da errore perché stai ridefinendo delle funzioni già definite, ed è proprio quello che stai facendo. Infatti le due funzioni cvett() e svett() è comune a tutti e tre i vettori, o comunque per qualsiasi vettore dello stesso tipo. Invece di definire ed implementare una funzione per ogni vettore (cvett1,cvett2...eccetera per n vettori, immagina se fossero 100! Lo stesso per svett1...), dato che alla fine devono fare la stessa cosa, definisci ed implementa solo una funzione per cvett e svett:
    
    void cvett(int d,int vett[]);
    void svett(int d,int vett[]);
    
    e la relativa implementazione:
    
    void cvett ( int d, int vett []){
        for (int i = 0 ; i<d ; i++){
            cout << " Inserisci il" << i << "numero :";
            cin >> vett [i];
        }
        cout << endl;
    }
    
    void svett (int d, int vett []){
        for (int i = 0; i<d; i++)
            cout << vett1[i] << ", ";
        cout << endl;
    }
    
    nel main poi ti regoli tu come utilizzarle:
    
    int main(){
        int vett1 [d];
        int vett2 [d];
        int vett3 [d];
        cvett (d ,vett1);
        svett (d ,vett1);
        cvett (d ,vett2);
        svett (d ,vett2);
        sommav (vett1,vett2,vett3, d);
    
        return 0;
    }
    
    Questo è quanto. Ti consiglio inoltre di rivedere meglio il manuale del c++, in particolare sulla parte che riguarda le funzioni e procedure.
Devi accedere o registrarti per scrivere nel forum
1 risposte