035
04.01.2004, 21:57 Uhr
Lumina
|
Wow, Leute, ich muss sagen, ihr setzt euch ganz schön für ein Mädel wie mich ein!
@ Windalf: Also in Mathe bin ich top drauf, hatte Mathe LK und an der FH hab ich bis jetzt auch keinerlei Probleme in Mathe, macht sogar richtig Spaß. Nur an der Umsetzung in die Programmiersprache scheiterts momentan anscheinend.
hab noch ne Frage an dich! (sorry, schon wieder ein mal) Wie bekomme ich die Warnung
Code: |
warning C4013: 'memcpy' undefiniert; Annahme: extern mit Rueckgabetyp int
|
aus diesem Code von dir, den ich versucht habe, umzuwandeln:
C++: |
#include <stdio.h> #include <malloc.h> //#include <atlbase.h>
void matrix_inv(double *m, int n) { int i, j, k; double h; double *mat; mat = (double*)malloc (n*n*sizeof(double)); for(j = 0; j<n; j++) for(i = 0; i<n; i++) mat[i+j*n] = i != j ? 0:1;
for(j = 0; j<n; j++) { h = m[j*n+j];
for(k = 0; k<n; k++) { m[k+j*n] /= h; mat[k+j*n] /= h; }
for(i = 0; i<n; i++) if(i != j && m[i*n+j] != 0) { h = -m[i*n+j]; for(k=0; k<n; k++) { m[k+i*n] += h * m[k+j*n]; mat[k+i*n] += h * mat[k+j*n]; } } } memcpy(m, mat, n*n*sizeof(double)); free(mat); }
void main() {
int i, j, n = 3;
double *matrix; matrix = (double*)malloc (n*n*sizeof(double));
matrix[0] = -1; matrix[1] = -2; matrix[2] = 0;
matrix[3] = -2; matrix[4] = 3; matrix[5] = -3;
matrix[6] = 0; matrix[7] = 3; matrix[8] = 3;
matrix_inv(matrix, n);
for(j = 0; j<n; j++) { for(i = 0; i<n; i++) printf("%0.2f\t", matrix[i+j*n]); printf("\n"); }
free(matrix); }
|
Mathematisch ist scheinbar alles korrekt, kann ihn zu 98 % nachvollziehen. -- ******************************************* Willst du glücklich sein im Leben, trage bei zu and'rer Glück, denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück! ******************************************* |