Bonjour,

Je rencontre quelques problèmes avec mon programme que je vais essayer de résoudre un par un avec vous.

Le projet est de calculer un système de 2 équations à 2 inconnus.

1. a*x + b*y = c
2. d*x + e*y = f

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <math.h>
#include <stdio.h>
#define PI 3.14159265
 
int main()
{
	/*Introducing variables*/
	float param_a,param_b,param_c,param_d,param_e,param_f;
	float index_x,index_y;
	float check,result;
 
	scanf("%f %f %f",&param_a,&param_b,&param_c);
	scanf("%f %f %f",&param_d,&param_e,&param_f);
 
	printf("%f %f %f\n",param_a,param_b,param_c);
	printf("%f %f %f\n",param_d,param_e,param_f);
	/* Check help me to knom if the solution is single, infini or doesn't exist */
	check=(param_a*param_e)-(param_b*param_d);
 
	if ( check=!0 ) 
		{ /* Single solution */
			index_x=(param_e*param_c)-(param_b*param_f);
			index_x=index_x/((param_e*param_a)-(param_b*param_d));
			index_y=(param_f-(param_d*index_x))/param_e;
			if ( (int)index_x==index_x )
				printf("Result: The equations have a single solution: x=%.f y=%.3f\n",index_x,index_y);
			else if ( (int)index_y==index_y )
				printf("Result: The equations have a single solution: x=%.3f y=%.f\n",index_x,index_y);
			else if ( ((int)index_x==index_x) && ((int)index_y==index_y) )
				printf("Result: The equations have a single solution: x=%.f y=%.f\n",index_x,index_y);
		}
	else if ( (param_a==param_d) && (param_b==param_e) && (param_c!=param_f) )
		{
			printf("Result: The equations have no solution\n");
		}
	else if ( (param_a==param_d) && (param_b!=param_e) && (param_c==param_f) )
		printf("Result: The equations have no solution\n");
	else if ( (param_a!=param_d) && (param_b==param_e) && (param_c==param_f) )
		printf("Result: The equations have no solution\n");
	else if ( (param_a==0) && (param_b==0) && (param_c!=0) )
		printf("Error: Triplet #1 does not represents coefficient of a line.\n");
	else if ( (param_d==0) && (param_e==0) && (param_f!=0) )
		printf("Error: Triplet #2 does not represents coefficient of a line.\n");
	else printf("Erreur..\n");
 
	return 0; 
 
}
L'écriture n'est pas encore fini mais je test au fur à mesure.

Tout d'abord. Si j'entre 2 équations qui me donneront une solution unique, je devrais imprimer à l'écran un entier, si le x et/ou y est entier et un float si x et/ou y est float.

Dans mes test, voilà ce que j'obtiens :
1#
1 1 1
1 -1 1
Result : The equations have a single solution: x=1 y=-0.000
Bizarre !

2#
0 1 32
2 5 6
Result : The equations have a single solution: x=77 y=-32.000
Apparemment, le index_y ne s'imprime pas en integer ! Mais...

3#
0 1 32
5 2 6
Result : The equations have a single solution: x=11.600 y=32


Je recherche donc un peu d'aide concernant cette erreur, il y en a d'autres mais je vais essayer de régler ça un par un

Merci d'avance à vous

Ilan