000
09.10.2005, 18:05 Uhr
~Hennse
Gast
|
Mit dieser Funktion habe ich noch Probleme. Und zwar habe ich hier diesmal zwei Arrays die ich dieser Funktion übergebe. Der Min Wert vom Vector1 wird immer ausgegeben. Der min Wert von Vector2 ist bei mir immer 0. Woran liegt das?
C++: |
void MinElem(int* ivector1,int* ivector2) //Funktion zum feststellen der kleinsten Zahl { imerker_vector1= ivector1[0]; imerker_vector2= ivector2[0]; for(int i=0;i<iwerte;i++) { if (imerker_vector1>ivector1[i]) { imerker_vector1=ivector1[i]; } if (imerker_vector2>ivector2[i]) { imerker_vector2=ivector2[i]; } } printf("min.Element Vector1:%2d min.Element Vector2:%2d\n",imerker_vector1,imerker_vector2); }
********************* Komplette Quellcode ********************* int i=0; int izahl=0; int iwerte=0; int ivector1[20]; int ivector2[20]; int imerker_vector1,imerker_vector2;
void ReadVec(int izahl,int ivector_nr) //Funktion zum einlesen der Zahlen { if(ivector_nr == 1) { ivector1[i] = izahl; i = i + 1; } if(ivector_nr == 2) { ivector2[i] = izahl; i = i + 1; } }
void WriteVec(void) //Funktion zum Ausgeben der eingegebenen Zahlen { for(int y=0; y<=iwerte-1;y++) { if ((y % 5) == 0) //Modulo 5; nach jedem 5.Element erfolgt hier ein Zeilenvorschub { printf("\n"); } printf("Element%2d Vector1:%2d Element%2d Vector2:%2d\n",y+1,ivector1[y],y+1,ivector2[y+iwerte]); //Ausgabe der Elemente } }
void MinElem(int* ivector1,int* ivector2) //Funktion zum feststellen der kleinsten Zahl { imerker_vector1= ivector1[0]; imerker_vector2= ivector2[0]; for(int i=0;i<iwerte;i++) { if (imerker_vector1>ivector1[i]) { imerker_vector1=ivector1[i]; } if (imerker_vector2>ivector2[i]) { imerker_vector2=ivector2[i]; } } printf("min.Element Vector1:%2d min.Element Vector2:%2d\n",imerker_vector1,imerker_vector2); } /* void MaxElem(int* ivector1,int* ivector2) //Funktion zum feststellen der größten Zahl { imerker_vector1= ivector1[0]; imerker_vector2= ivector2[0]; for(int i=0;i<iwerte;i++) { if (imerker_vector1<ivector1[i]) { imerker_vector1=ivector1[i]; } if (imerker_vector2<ivector2[i]) { imerker_vector2=ivector2[i]; } } printf("max.Element Vector1:%2d max.Element Vector2:%2d\n",imerker_vector1,imerker_vector2); } */ void SumVector(void) //Addition von zwei Vectoren { int fv1[5]={3,4,5,6,7}; int fv2[5]={6,3,5,9,7}; int* SumVec = new int[5]; //dynamische Speicherreservierung
for(int i=0; i<5; i++) { SumVec[i]=fv1[i]+fv2[i]; printf("Summenvector:%2d\n",SumVec[i]); //Ausgabe des Summenvectors } delete [] SumVec; //Speicher wird hier wieder freigegeben }
void main(void) { printf("Anzahl der Werte in einem Vector:"); scanf("%2d",&iwerte); //größe des Vector wird hier festgelegt
printf("Vector1:\n"); for(int x=1; x<=iwerte;x++) { scanf("%2d",&izahl); //einlesen der Zahlen in einen Vector ReadVec(izahl,1); }
printf("Vector2:\n"); for(int x=1; x<=iwerte;x++) { scanf("%2d",&izahl); //einlesen der Zahlen in einen Vector ReadVec(izahl,2); } WriteVec(); MinElem(ivector1,ivector2); //MaxElem(ivector1,ivector2); }
|
Bearbeitung von Windalf: |
Codetags gefixt...
|
Dieser Post wurde am 09.10.2005 um 19:08 Uhr von Windalf editiert. |