[c] probleme initialisation matrice

probleme initialisation matrice [c] - Programmation

Marsh Posté le 11-02-2002 à 22:57:35    

Pourquoi ca marche pas, et comment le corriger ?  
 
void initialise(int tab[], int n)
{
 int i;
 for(i=0; i<n; i++) {
        tab[i]=0.1*cos(3.1416*i/65);
  }
}
 
 
[newbi je suis , newbi je resterais...]

Reply

Marsh Posté le 11-02-2002 à 22:57:35   

Reply

Marsh Posté le 11-02-2002 à 23:07:40    

Peut etre parceque ton tableau est un tableau d'entiers et que tu y stockes des nombres entre -0.1 et 0.1 ce qui s'arrondi toujours à 0 :)

Reply

Marsh Posté le 11-02-2002 à 23:11:28    

oups.... exact  :-)
 
mais le resultat obtenu n'est pas tip-top :
-1717986918 1686081975 1486605570 762372071 -1234823745

 

[jfdsdjhfuetppo]--Message édité par Psychee--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 11-02-2002 à 23:14:08    

Ça ressemble plus à des adresses qu'à des valeurs. Vérifie ta fonction d'affichage. Ça devrait donner des valeurs entre -0.1 et 0.1.

 

[jfdsdjhfuetppo]--Message édité par Krueger--[/jfdsdjhfuetppo]


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 11-02-2002 à 23:18:31    

la voila :
 
void afficher(FILE *ptr_fichier, double tab[], int n)
{
 int i;
 ptr_fichier = fopen("données.txt", "a" );
 for (i=0; i<n; i++) {
  fprintf(ptr_fichier, "%d      ", tab[i]);
 }
 fclose(ptr_fichier);
}

Reply

Marsh Posté le 11-02-2002 à 23:21:00    

j'ai un soudain doute sur le "%d    "   :-((

Reply

Marsh Posté le 11-02-2002 à 23:24:32    

Oui, en effet, tu écris des entiers. Pour les float c'est %f, alors pour les double ça doit être %lf. Corrigez moi si je me trompe.
 
Au passage, je ne sais pas si tu le sais, mais en mettant du texte entre des balises ubb 'code' il restera indenté comme il l'était à l'envoi du post. Bien pratique pour afficher du code. ;)

 

[jfdsdjhfuetppo]--Message édité par Krueger--[/jfdsdjhfuetppo]


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 12-02-2002 à 10:09:18    

fais un tab de float la tu vas etre tronqué avec les entiers.


---------------
Mes News
Reply

Marsh Posté le 12-02-2002 à 10:11:21    

Krueger a écrit a écrit :

Oui, en effet, tu écris des entiers. Pour les float c'est %f, alors pour les double ça doit être %lf. Corrigez moi si je me trompe.
 
Au passage, je ne sais pas si tu le sais, mais en mettant du texte entre des balises ubb 'code' il restera indenté comme il l'était à l'envoi du post. Bien pratique pour afficher du code. ;)  
 
 




 
un double c'est %f aussi


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 12-02-2002 à 10:20:53    

Moi ce que je trouve zarb, c'est qu'il initialise un tableau d'entiers, et qu'il affiche un tableau de doubles. Sinon, un double, c'est du %lf normalement (codé sur 8 octets).


---------------
"Si ça peut déconner, ça va déconner..."
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed