Compile time errors in Visual C++

Status
Niet open voor verdere reacties.

Stephane

Gebruiker
Lid geworden
21 apr 2007
Berichten
10
Hallo iedereen

Kan iemand vertellen wat hier fout gaat in mijn code want ik ben student en we moeten oefeningen schrijven en voor de rest aan zelfstudie doen en voor de rest er is van die opgaven geen enkele oplossing gegeven en daardoor kunnen we niks controleren;

Hier mijn geschreven code :
Code:
/*
1) Schrijf een functie die de waarden van de ene in de andere bestaande int array kopieert.  Prototype:

void Kopieer ( const int bron [], int bestemming [], int lengte);

Schrijf een programma waarin je twee int-arrays van gelijke grootte declareert.  
De ene array initialiseert met voldoende gehele waarden en gebruikt de functie om van de tweede array een kopie 
van de eerste te maken.  Schrijf een functie waarmee je de inhoud van een array op het scherm kan zetten.  Prototype:

void print(const int a[], int lengte);

Schrijf een programma waarin je deze functies gebruikt en zorg voor een nette uitvoer.

*/

#include <iostream>
using namespace std;

void Kopieer ( int bron [], int bestemming [], int lengte);
void print( int a[], int lengte);

int main()
{
	const int AANTAL = 5;
	const int a [AANTAL]={1,2,3,4,6};
	int b [AANTAL];

	cout << "Kopieren van een array" <<endl;
	/*for ( int i=0; i<AANTAL; i++){
		cout << i <<"e getal:";
		cin >> a [i];
	}
	cin.get();*/

	Kopieer ( a, b, AANTAL);
	print (a, AANTAL);
	
	cin.get();
	return 0;
}

	//implementatie
	void Kopieer ( const int bron [], int bestemming [], int lengte){
		for (int teller=0; teller < lengte ; teller++){
			  bestemming [teller] = bron[teller];
		}
	}
	void print( const int a[], int lengte){
		for (int teller=0; teller < lengte ; teller++){
			cout << a[teller]<<endl;
		}
	}

Dat zijn de fouten dat ik krijg :
======================

hfd6_oef2.cpp(26) : error C2664: 'Kopieer' : cannot convert parameter 1 from 'const int [5]' to 'int []'
Conversion loses qualifiers

Kan iemand mij helpen wat hier aan de hand is?

Met vriendelijke groeten
 
Gaat om die compile time errors

Een modestudent heeft de fout gevonden, waarbij dank

Code:
/*
1) Schrijf een functie die de waarden van de ene in de andere bestaande int array kopieert.  Prototype:

void Kopieer ( const int bron [], int bestemming [], int lengte);

Schrijf een programma waarin je twee int-arrays van gelijke grootte declareert.  
De ene array initialiseert met voldoende gehele waarden en gebruikt de functie om van de tweede array een kopie 
van de eerste te maken.  Schrijf een functie waarmee je de inhoud van een array op het scherm kan zetten.  Prototype:

void print(const int a[], int lengte);

Schrijf een programma waarin je deze functies gebruikt en zorg voor een nette uitvoer.

*/

#include <iostream>
using namespace std;

void Kopieer ( const int bron [], int bestemming [], int lengte);
void print( const int a[], int lengte);

int main()
{
	const int AANTAL = 5;
	const int a [AANTAL]={1,2,3,4,6};
	int b [AANTAL];

	cout << "Kopieren van een array" <<endl;
	/*for ( int i=0; i<AANTAL; i++){
		cout << i <<"e getal:";
		cin >> a [i];
	}
	cin.get();*/

	Kopieer ( a, b, AANTAL);
	print (a, AANTAL);
	
	cin.get();
	return 0;
}

	//implementatie
	void Kopieer ( const int bron [], int bestemming [], int lengte){
		for (int teller=0; teller < lengte ; teller++){
			  bestemming [teller] = bron[teller];
		}
	}
	void print( const int a[], int lengte){
		for (int teller=0; teller < lengte ; teller++){
			cout << a[teller]<<endl;
		}
	}
 
Laatst bewerkt:
/*
1) Schrijf een functie die de waarden van de ene in de andere bestaande int array kopieert. Prototype:

void Kopieer ( const int bron [], int bestemming [], int lengte);

Schrijf een programma waarin je twee int-arrays van gelijke grootte declareert.
De ene array initialiseert met voldoende gehele waarden en gebruikt de functie om van de tweede array een kopie
van de eerste te maken. Schrijf een functie waarmee je de inhoud van een array op het scherm kan zetten. Prototype:

void print(const int a[], int lengte);

Schrijf een programma waarin je deze functies gebruikt en zorg voor een nette uitvoer.

*/

De variabele lengte kun je beter ook als const declareren. Hij wordt immers niet gewijzigd binnen de functie.

Code:
	void Kopieer ( const int bron [], int bestemming [], int lengte){
		for (int teller=0; teller < lengte ; teller++){
			  bestemming [teller] = bron[teller];
		}
	}

Bij bovenstaande zou je de accolades van de for loop nog weg kunnen laten. Maar dat maakt verder niks uit.

Code:
#include <iostream>
using namespace std;

#define AANTAL 5

void kopieer (const int bron [], int bestemming [], const int lengte);
void print(const int a[], const int lengte);

int main(){
    int a[] = { 6, 2, 7, 3, 9};
    int b[] = {0};
    kopieer(a, b, AANTAL); 
    print(b, AANTAL);
    system("PAUSE");
    return 0;
}

void kopieer(const int bron[], int  bestemming[], const int lengte){
     for(int i = 0; i < lengte; i++)
         bestemming[i] = bron[i];
}

void print(const int a[], const int lengte){
     for(int i = 0; i < lengte; i++)
         cout << i + 1 << ": " << a[i] << endl;
}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan