000
18.06.2007, 23:19 Uhr
jack26
|
Hallo,
ich hab ein kleines Problem mit einem 2 Dimensionalem Array, und zwar will eine Matrix an eine Funktion übergeben, diese gibt als Resultat die Anzahl der Zeilen zurück für die folgende Bedingungen gelten:
- Zwischen 2 negativen Zahlen einer Zahl steht wenigstens 1 positive Zahl oder 0 - Die Summe aus den positiven Zahlen in einer Zeile ist kleiner als der Betrag der Summe der negativen Zahlen in der Zeile
Hier mal mein Code:
C++: |
#include <stdio.h> #include <math.h>
int matrixfunc(int (*matrix)[4]) {
int i, j, k, summepos, summeneg, counter=0;
for(i=0; i<3; i++) for(j=1; j<4; j++) {
summepos=0; summeneg=0;
for(k=0; k<4; k++) if(matrix[i][k] < 0 && matrix[i][k+2] < 0 && k<4) //Ist 1te und 3te Zahl negativ? if(matrix[i][k+1] >= 0) { //Ist 2te Zahl positiv? summepos += matrix[i][k+1]; summeneg += matrix[i][k]; } if(summepos<abs(summeneg)) //Summe der positiven Zahlen < Summe der negativen Zahlen einer Zeile? counter++;
printf("pos:%i\n",summepos); printf("neg:%i\n",summeneg); printf("counter:%i\n",counter); }
return counter; }
int main(void) { int matrix[3][4]={{-1,1,-1,1}, {-2,1,-1,1}, // Rückgabe müsste 2 sein {-1,1,-2,1}}; int ergebnis;
ergebnis=matrixfunc(matrix); printf("%i",ergebnis);
}
|
Irgendwie funktioniert meine Funktion noch nicht gaz, wäre für jede Hilfe dankar.
Danke Gruß jack26 |