bonjour tout le monde

j'ai besoin d'aide sur la réalisation d'un code en c le grand probleme c'est que je suis tout nouveau en programmation...
mon fichier est composé de ma fonction main et de"maFonction"
ci-dessous le code :




// Dans mon main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
void maFonction(double u1, double u0, double u[]);
int main(int argc,char *argv[])
{
double n=10000,t=0.1;//n represente le temps maximal et t le pas de temps
double M=1000;   //jai un intervale [0;1] qui est discretisé en M+1 points
	for (int k=1 ; k<n ; k++)
	{
		 double nombre=2,h=1/1001,c[999] ;
	    double L=k*t/h;// L pour dire lambda
	    c[k]=pow(nombre,L);
        double y[999],d[1000],u[999];
		for(int m=k ;m<M ; m++)/*calcul de y=U(m,k+1)=A*U(m,k)-U(m,k-1)*/
		{
			y[m]=d[m]-u[m-1];/*voici le resultat final que je veux evaluer*/
 
		}
	}
 
double u[1000] = {0}, u0 = 0, u1 = 0;
 
maFonction(u1, u0, u);
// Affichage de ses valeurs pour vérifier
    for (int m = 1 ; m < M ; m++)
    {
        printf("%d\n", u[m-1]);
    }
 
    return 0;
}
// Et ma fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
void maFonction(double u1, double u0, double u[])/*ici je veux calcule u[] qui est un vecteur et que je souhaite utiliser dans y*/
{
    // Initialisation
   double h=1/1001,t=0.1;
   int M=1000;
    for(int m=1 ;m<M ;m++)
    { 
	u0=cos(m*h)+sin(m*h);
	u1=cos(m*h-1)+sin(m*h+1);
	u[m-1]=t*u1+u0; /* On utilise m-1 parce que ma boucle commence 
                        à m = 1. Ainsi u[0] n'est pas ignoré */
    }
}

Mon objectif c'est d'évaluer y[m]=d[m]-u[m-1] (qui est un tableau) or le calcul de d[m](c'est un tableau) est fait dans un autre fichier comment je fait pour qu'a la compilation d[m] soit directement utilisé dans le fichier ci-dessus?

excusez moi d'etre long

voici le code qui me permet d'evaluer d[m]( pour info d[m] est un vecteur colone c'est le produit d'une matrice tridiagonale avec un vecteur donné)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void TridiagonalSolve ( const double *b, double *c, double *d, double *u, unsigned int n)
{
	const double monbre=2;
	double M=1000,t=0.1,h=1/1001;
 
	//soit A une matrice tridiagonale et U un vecteur determinons d=A*U
 for (int m = 1; m<M ; m++)
 {   
 
	 c[m]=pow(nombre,m*t/h);
	 double id =1/(b[m]-c[m-1]);
 
	 c[m]*=id;
	 d[m]=(d[m]-d[m-1]*c[m])*id;
 }
 u[M-1]=d[M-1];
 for (int m = M-2; m>=0 ; m--)
	 d[m]=u[m]+c[m]*u[m+1];
}
sauf que là j'ai 3 erreurs que je n'arrive toujours pas a corriger

voici les erreurs:
error C2065: 'nombre'*: identificateur non déclaré
: error C2108: l'indice n'est pas de type intégral
: error C2108: l'indice n'est pas de type intégral
: warning C4244: 'initialisation'*: conversion de 'double' en 'int', perte possible de données
2008\Projects\maman\maman\Debug\BuildLog.htm"
1>maman - 3 erreur(s), 1 avertissement(s)


et pour finir avoir une représentation graphique de y[m] m=1,2,...........,1000