Je cherche à écrire un programme qui manipule des tableaux à une dimension dont la taille est N. Cette valeur de N est bien évidemment entière mais dépend d'une autre variable notée DA. N est le résultat du calcul suivant:
N=720/DA+1
La valeur de DA est nécessairement choisie par l'utilisateur du programme de façon à ce que N soit entier (Si DA=0.1 alors N vaut 7201). Je ne souhaite pas que l'utilisateur rentre directement N. J'ai donc écrit ça:
/*DEBUT PROG*/
#include <stdio.h>
#include <math.h>
//DECLARATION DE DA puis de N
const double DA=0.1;
const int N=720/DA+1;
//DECLARATION D'UN TABLEAU TYPE
double TABLEAU[N]={0};
//CORPS DU PROGRAMME
int main(void)
{
...
}
/*FIN PROG*/
J'utilisais le compilateur lcc-win32 qui acceptait cette déclaration. J'utilise dorénavant le compilateur Borland C 5.5 (freecommandlinetools) qui est paraît-il plus performant. Ce compilateur ainsi que Visual C++ refuse cette déclaration de N, qualifiée alors par le compilateur d'illégale.
Quel est le problème?
- N est de type int et DA de type double...pb de conversion de type?
- puis-je effectuer un calcul au moment de ma déclaration de N?
- Ai-je le droit de faire des calculs ailleurs que dans main(), de façon à pouvoir déterminer N en fonction de DA?
Merci de m'éclairer sur ce point qui me paraît obscur.
PS: Je suis sans doute une burne en programmation C...
Message édité par GROFRED le 03-11-2004 à 14:01:04