Algorithme " return plusieurs valeur"

Résolu
Bonjour, voilà j'essaie de codé un programme qui a pour objectif de trouver les solutions d'une équation du second degré , Cependant lorsque l’équation possède 2 racines je n'arrive pas a renvoyer les 2 valeurs Voici mon code :
public class Delta{
  public static java.util.Scanner scanner = new java.util.Scanner(System.in);
  public static void main(String[]args){

  System.out.println("Veuillez entré une valeur pour la variable a ");
   int a = scanner.nextInt();
  System.out.println("Veuillez entré une valeur pour la variable b ");
   int b = scanner.nextInt();
  System.out.println("Veuillez entré une valeur poour le terme indépendant (c)");
   int c = scanner.nextInt();
   
  System.out.println("Voici votre équation " + a +"x²" + "+" + b +"x" + "+" + c + " = 0");
  
  double solution = calculDelta( a , b , c );
  
  System.out.println("Voici la solition de votre équation " + solution);
  
 }
 
 
 public static double calculDelta( int a , int b , int c){
 
 int delta = (b*b) - 4*a*c;
 
   if(delta < 0) 
     System.out.println("Cette equation ne possède pas de solution");
     
   else if( delta == 0 ){
     System.out.println("Votre equation possède une solution");
     double x = (-b)/a;
    return x;
   }
   
   else{
     System.out.println("cette équation possède 2 solution");
     double racineDelta = Math.sqrt(delta);
     double x1 = (-b + racineDelta)/2*a;
     double x2 = (-b - racineDelta)/2*a;
     return x1;
     return x2;
     
    }

}

}


Merci d'avance.

1 réponse

  1. Modérateur
    Bonjour,

    Une fonction s'arrête au premier "return".
    Une solution est de stocker le résultat dans un ARRAY ... et de faire un RETURN de cet array.

    1. D'accord Merci n'étant pas encore a l'aise avec les tableaux , je ne sais pas comment l'utilisé mais j'ai trouver un moyen pour affiché mes racines , cependant un autre point n'est pas résolu pas exemple lorsque je prends l’équation suivante 4x²+4x+1 = 0 cette équation a une racine qui est -4/8 soit -1/2 . cependant je comprend pas pourquoi mon compilateur affiche 0.0 voici mon instruction:

      if(delta == 0){
      System.out.println("Cette equation possède une racine");
      double x = -b/(2*a);
      System.out.println("Voici la solution :" + x);
      }
    2. Bonjour

      dans de nombreux langages, quand on divise deux entiers, on obtient le résultat de la division entière 1 / 2 = 0 reste 1.
      Si tu veut obtenir 0,5, il te suffit que l'un des 2 membres soit un nombre décimal (float, double, etc...)

      -b / (2.0 * a)
      devrait fonctionner.
    3. Pense à passer le sujet résolu.