Probléme en C

Résolu
Thibaut63 Messages postés 143 Statut Membre -  
Thibaut63 Messages postés 143 Statut Membre -
Bonsoir,

Je suis actuellement en première année d'IUT Informatique, et j'ai un jolie TP d'algorithmique a faire. Après avoir ramé bien longtemps dessus j'appelle au secours ! Ce Tp se base essentiellement sur les Itérations ( While et For ).

Exercice :


" Les indices de ligne et de colonne utilisés dans cette fonction seront respectivement i et j.
Ecrire une fonction qui affiche 20 lignes de 50 caractères chacune où le caractère affiché est :

- Une étoile ( * ) si (i,j) appartient à l'ensemble A suivant :

A= { couples(i,j) tel que RACINE( (i-10)²+((j-25)²/5) ) <= 8 }

- Un espace sinon.

Pour cela on programmera et on utilisera obligatoirement une fonction appartientA qui prend en paramètre les indices i et j et qui retourne 1 si (i,j) appartiennent à A, 0 sinon.

"


J'ai demandé a mon professeur quel doit être le résultat obtenus et il devrait s'agir d'un cercle , ou plus précisément dune tête, qui dans les suite du TP , on complète avec d'autre fonction pour obtenir un smiley.
En revanche ma solution m'affiche un vulgaire tas de point en bas ...

Voila le code de ma fonction :

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void lignescaract(void);
float appartientA(float i,float j);

void lignescaract(void)
{
float i, j,appartA;

for (j=0; j<20; j++)
{

printf(" \n");

for (i=0; i<50; i++)
{
appartA=appartientA(i,j);

if(appartA == 1)
printf("*");

if(appartA == 0)
printf(" ");
}
}
}


float appartientA(float i,float j)

{


if(sqrt(((i-10.0)*(i-10.0))+(((j-25.0)*(j-25.0))/5.0))<=8.0)
return 1;

else
return 0;


}

int main(void)
{
lignescaract();
printf(" \n");
system("PAUSE");
return 0;

}


Je ne demande en aucun cas la réponse juste un petit coup de pouce :)
Merci d'avance !!!

2 réponses

Utilisateur anonyme
 
Bon j'ai pas vu à première vue de pb dans le code, jvais voir ça

Pour info, l'intérêt de déclarer ses fonctions c'est de pouvoir les mettre dans l'ordre que tu veux par la suite, il est plus judicieux quand c'est fait de placer la main en premier... ça fait tout scroller
-1
Utilisateur anonyme
 
J'ai trouvé !
Ton ellipse est centrée en (10,25)
Ce qui ne correspond pas à ta fenêtre d'affichage.
Une erreur dans le sujet je pense, en tout cas, si tu intervertis tes i et j dans ta formule ça te fait l'ellipse bien centrée :)
0
Thibaut63 Messages postés 143 Statut Membre 41
 
Merci beaucoup! j'aurais pu cherché un moment !
En vous souhaitant une bonne soirée !
-1