Question de tableau et booleen [Résolu]

ZeroenJava 4 Messages postés samedi 29 octobre 2011Date d'inscription 4 novembre 2011 Dernière intervention - 3 nov. 2011 à 16:34 - Dernière réponse : BunoCS 14180 Messages postés lundi 11 juillet 2005Date d'inscription 22 octobre 2018 Dernière intervention
- 4 nov. 2011 à 17:47
Bonjour, je suis un nouveau en java et j'apprends avec ce qu'internet m'offre. Je désire écrire un programme qui demande a l'utilisateur d'entrée 9 chiffres et ensuite les placer dans une grille 3x3 (peut importe l'ordre)

import java.util.*;
class Projet {

//début de scanner. S'aisir les 9 chiffres par l'utilisateur
public static void scanner (String[] args) {

Scanner clavier = new Scanner (System.in);

System.out.println ("Completer la grille de 9 cases");

for (int i=0; i<9; i++) {
int[][] a = new int [][]; //C'est ici que sa bloque, je ne trouve pas la façon de convertir l'entrée du scanner en grille.


System.out.println("And printed with printArray:");
printArray(a);
} }

//Présentation dans une grille 3x3 des chiffres.
public static void printArray(int[][] a) {
int rows = a.length;
int cols = a[0].length;
for (int row=0; row<rows; row++) {
for (int col=0; col<cols; col++) {
if (col > 0) System.out.print(", ");
System.out.print(a[row][col]);
}
System.out.println();
}
}
}

Merci beaucoup de votre aide!
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
BunoCS 14180 Messages postés lundi 11 juillet 2005Date d'inscription 22 octobre 2018 Dernière intervention - 3 nov. 2011 à 17:05
3
Merci
Hello,
Déjà, utilises les balises code: c'est plus lisible.
Ensuite, un peu de réflexion:
- tu as UNE grille 3x3, donc tu l'initialises UNE fois
- tu dois demander 9 chiffres à l'utilisateur: une boucle for fait bien l'affaire
- pour chaque chiffre:
. tu demandes à l'utilisateur de le saisir
. tu le stockes dans ta grille(attention aux "erreurs" de saisie)
- une fois tes 9 valeurs stockées, tu affiches ta grille

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

Merci BunoCS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de BunoCS
ZeroenJava 4 Messages postés samedi 29 octobre 2011Date d'inscription 4 novembre 2011 Dernière intervention - 3 nov. 2011 à 21:23
0
Merci
Merci de ta réponse, j'ai fait plusieurs recherche et j'ai découvert mon erreur!
J'admet que je me suis débrouillé avec quelques exemples pris sur des sites, mais je crois bien comprendre la réflexion de ce qui suit.

//Ceci importe la classe Scanner du package java.util
import java.util.Scanner;

class test123{

public static void main(String[] args){
Scanner input = new Scanner(System.in);
int[][] a = new int[3][3]; //tableau 3x3

System.out.println("Entrée vos 9 chiffres pour compléter la grille 3x3"); //aviser lutilisateur de la demarche
for (int i=0 ; i < a.length ; i++) //boucle pour vérifier la ligne jusqua 3
for (int j=0 ; j < a[i].length ; j++){ //boucle pour vérifier la colonne jusqua 3
a[i][j] = input.nextInt(); //récuperer la saisit
}

System.out.print("grille 3x3"); //présentation de la grille
for (int i=0 ; i < a.length ; i++)
{ System.out.println(); //inscrire 3 chiffres et passer a la prochaine ligne
for (int j=0 ; j < a[i].length ; j++){ //definir les colonne avec une espace entre chaque ligne
System.out.print(a[i][j]+" ");
}
}
}
}

je ne suis pas encore au erreurs de saisit, ça va venir avec la prochaine étape les booleens.
Commenter la réponse de ZeroenJava
BunoCS 14180 Messages postés lundi 11 juillet 2005Date d'inscription 22 octobre 2018 Dernière intervention - 4 nov. 2011 à 07:41
0
Merci
Attention, booléen différent de chiffre


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
ZeroenJava 4 Messages postés samedi 29 octobre 2011Date d'inscription 4 novembre 2011 Dernière intervention - 4 nov. 2011 à 13:49
0
Merci
je comprends ce que tu veux dire, je me retrouve avec beaucoup d'erreurs de int ne peut être converti
Commenter la réponse de ZeroenJava
ZeroenJava 4 Messages postés samedi 29 octobre 2011Date d'inscription 4 novembre 2011 Dernière intervention - 4 nov. 2011 à 17:10
0
Merci
//Ceci importe la classe Scanner du package java.util
import java.util.Scanner;

class Projet{

public static boolean Saisit();{
Scanner input = new Scanner(System.in);
int[][] a = new int[3][3]; //tableau 3x3

System.out.println("Entrée vos 9 chiffres pour compléter la grille 3x3"); //aviser lutilisateur de la demarche
for (int i=0 ; i < a.length ; i++) //boucle pour vérifier la ligne jusqua 3
for (int j=0 ; j < a[i].length ; j++){ //boucle pour vérifier la colonne jusqua 3
a[i][j] = input.nextInt(); //récuperer la saisit
if( (a[][] > 0) && (verif==true) ) //si un chiffre est supérieur a 0 donner reponse true
else verif = false; //sinon false
} return verif; //retourner a verif pour donner la réponse

}

System.out.print("grille 3x3"); //présentation de la grille
for (int i=0 ; i < a.length ; i++)
{ System.out.println(); //inscrire 3 chiffres et passer a la prochaine ligne
for (int j=0 ; j < a[i].length ; j++){ //definir les colonne avec une espace entre chaque ligne
System.out.print(a[i][j]+" ");
}

verif = Saisit ();
System.out.println ("Réponse : " +Saisit);
}

}

}
Mesemble que la logique est bonne non ??? Mais je me retrouve avec plusieurs erreurs
Commenter la réponse de ZeroenJava
BunoCS 14180 Messages postés lundi 11 juillet 2005Date d'inscription 22 octobre 2018 Dernière intervention - 4 nov. 2011 à 17:32
0
Merci
Et la balise code?!

for (int i=0 ; i < a.length ; i++)

Si tu connais la taille, pourquoi ne pas la mettre? Idem pour j

if( (a[][] > 0) && (verif==true) )

Manque pas i et j dans tes crochets? Il est déclaré où verif? Et tu fais quoi si la condition est vraie? Et tes parenthèses, tu les mets au hasard??

Je m'arrêtes là et je te laisse revoir ta copie


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
BunoCS 14180 Messages postés lundi 11 juillet 2005Date d'inscription 22 octobre 2018 Dernière intervention - 4 nov. 2011 à 17:45
0
Merci
Aller, un petit coup de pouce avant le week-end

import java.util.Scanner;

public class Project {

  public static void main(String[] args) {

  // Déclaration des variables
  Scanner input = new Scanner(System.in); 
  int[][] a = new int[3][3]; //tableau 3x3 
  int i,j;

  // Récupération des valeurs et stockage dans la grille
  System.out.println("Entrée vos 9 chiffres pour compléter la grille 3x3");
  for (i=0; i<3; i++)
    for (j=0; j<3; j++)
      a[i][j] = input.nextInt();

  // Affichage du résultat
  System.out.print("grille 3x3");
  for (i=0; i<3; i++) 
  { 
    System.out.println();
    for (j=0; j<3; j++)
      System.out.print(a[i][j]+" "); 
    } 
  }
}

Attention, je n'ai pas codé la vérification de la saisie

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
BunoCS 14180 Messages postés lundi 11 juillet 2005Date d'inscription 22 octobre 2018 Dernière intervention - 4 nov. 2011 à 17:47
0
Merci
Bon, après relecture, je vois que je n'ai pas mis d'accolade dans la 1ère double boucle. C'est correct, mais c'est pas bien....


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.