CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[c] bataille navale

_viper_
_viper_
Niveau 10
03 janvier 2010 à 23:09:41

Regarde ton premier for, tu mets i<0 au lieu de i = 0 , ça provoque des plantages ça.
En corrigeant ça et ce dont mon précédent post parlait, ça marche nickel (du moins ça a l'air, je ne sais pas si le dessin est exactement celui que tu attendais (c'est vrai qu'avec des retours à la ligne ça irait mieux :o)) )).

Et je suis de Montmagny (pitié pour que tu connaisses ^^).

dnob700
dnob700
Niveau 10
03 janvier 2010 à 23:59:45

chris : dans ta version tu dois réinitialiser restant_j1 et j2 donc ça ne coute pas moins cher.

viper : tab était déclaré comme un tableau bidimmensionnel de char*. Il est donc valide d'enregistrer dedans "+" ou "-" (avec des vrais guillemets). Par contre, il faut utiliser "%s" pour afficher le résultat à la place de "%c". Sinon, bien sûr, il est possible aussi de tout passer en char simple.

_viper_
_viper_
Niveau 10
04 janvier 2010 à 00:15:11

Et ça me semble plus approprié.

En effet tu as raison, je ne pensais pas qu'on pouvait utiliser = pour enregistrer une chaîne, mais je vois qu'on peut le faire quand la chaîne est un pointeur et non un tableau.
La mémoire est automatiquement allouée dans ce cas ?

dnob700
dnob700
Niveau 10
04 janvier 2010 à 01:37:09

Non, lorsqu'une chaîne est présente dans la source, elle fait partie de l'exécutable et elle a donc une adresse lorsque le programme est chargé en mémoire. C'est cette adresse qui est enregistré dans tab[i][j]. Mais aucune mémoire n'est allouée automatiquement.

_viper_
_viper_
Niveau 10
04 janvier 2010 à 01:49:28

C'est toujours bon à savoir, merci :)

Natty_Sam_Fayaa
Natty_Sam_Fayaa
Niveau 5
04 janvier 2010 à 15:00:56

Regarde ton premier for, tu mets i<0 au lieu de i = 0 , ça provoque des plantages ça.
En corrigeant ça et ce dont mon précédent post parlait, ça marche nickel (du moins ça a l'air, je ne sais pas si le dessin est exactement celui que tu attendais (c'est vrai qu'avec des retours à la ligne ça irait mieux )).

Et je suis de Montmagny (pitié pour que tu connaisses ^^).

Ouaaaaaais merci c'était ca meme en relisant relisant j'avai pas vu^^

oui je connais lol c vraiment a coté mais j'suis jamais allé lol j'vais qu'a la fac a villetaneuse

_viper_
_viper_
Niveau 10
04 janvier 2010 à 17:16:01

Oui je m'en doute, mais souvent les gens habitant les villes voisines ne connaissent pas, donc j'ai eu peur :o))

chris_27
chris_27
Niveau 10
04 janvier 2010 à 20:39:32

dnob700 : ok, je m'incline. :rouge:

Natty_Sam_Fayaa
Natty_Sam_Fayaa
Niveau 5
05 janvier 2010 à 18:13:42

okii^^
booonjour bonjouuuuur :) quelle belle journée froide que celle ci qui est la veille de la remise de mon projet (la grosse blague, comme si j'allai en rendre la moitié^^) !
toujours est-il que je rencontre une erreur

--->
char lettre;
int chiffre;
int i,j;
for(i=1;i<=2;i++)
for(j=1;j<=2;j++) /*Boucle pour que l'utilisateur rentre le bon format*/
{

do{
printf("Entrez les coordonnées du sous-marins%d : case %d : (sous la forme A1) : ",i,j);
scanf("%c%s", lettre, chiffre);

manuGrille(grilleJoueur1[TAILLEM][TAILLEM],lettre,
chiffre);

}while((lettre>'J' || lettre<'A') || lettre<'a'|| lettre>'j') || lettre<'0' || lettre<'9' && (chiffre<0 || chiffre>9))
}

afficheGrille(grilleJoueur1[TAILLEM][TAILLEM]);

__________________________________________________
_______

Voila alors quand je rentre une valeur (essayé avec a1, A1, 11), ms-dos se met se met à "ne plus fonctionner" ^^
heeeelp je sais que mon while est pas joli du tout encore moins mon "%c%d", mais j'sais pas comment faire étant donné que j'ai besoin de ces 2 variables en meme temps...

dnob700
dnob700
Niveau 10
05 janvier 2010 à 18:23:46

«est pas joli du tout encore moins mon "%c%d"»

Sauf que ce n'est pas ça que tu as écris... Sinon, ce n'est pas trop moche.

Mais fait attention que ton commentaire n'est pas bien placé. Mets le à coté du "do" si tu y tiens vraiment (ou pas du tout sinon), mais là il gène.

Et aussi, tu devrais faire la mise à jour de la grille seulement après le "while" (mais dans la boucle for) et non pas avant pour qu'elle soit faite uniquement lorsque c'est nécessaire.

Natty_Sam_Fayaa
Natty_Sam_Fayaa
Niveau 5
05 janvier 2010 à 18:30:05

OK pour la mise à jour, ah oui c'est j'avais mis %s, enfin j'avai corrigé et ca marche pas quand meme en "%c%d"

Natty_Sam_Fayaa
Natty_Sam_Fayaa
Niveau 5
05 janvier 2010 à 18:32:50

enfin l'erreur vient au scanf car a la place de la mise a jour j'ai mis l'affichafge d'une phrase et le programme n'a pas le temps de l'afficher qu'il plante deja

dnob700
dnob700
Niveau 10
05 janvier 2010 à 18:54:27

scanf doit modifier les variables qu'il reçoit en argument et il a donc besoin de leur adresse et non pas de leur valeur.

Je crains (mais sans voir plus de code ce n'est qu'une hypothèse) que ta fonction de mise à jour soit sujette au même problème.

Natty_Sam_Fayaa
Natty_Sam_Fayaa
Niveau 5
05 janvier 2010 à 18:58:13

mdrrrrrr je viens de la voir merci beaucoup (pffff trop la honte cette erreur lol)
oké j'vais voir ca^^

Natty_Sam_Fayaa
Natty_Sam_Fayaa
Niveau 5
05 janvier 2010 à 20:06:32

Pour revenir sur mon while ca pose gros probleme ma condition est fausse je sais pas comment je peux faire une boucle qui ne sort d'elle meme que quand l'utilisateur rentre une lettre de a à j (maj ou min) suivi d'un chiffre de 0 à 9... :snif:

dnob700
dnob700
Niveau 10
05 janvier 2010 à 20:11:48

Ta condition ressemble à ce qu'il faudrait écrire, mais il y a des choses qui doivent être vrai simultanément et pas d'autre. Moralité, utilise des ET ('&&') et pas seulement des OU ('||') lorsqu'il le faut. (je te laisse réfléchir à comment faire).

Mais en fait tu l'écrit à l'envers. Je serais toi, je testerais si les données rentrée sont correcte (c'est bien plus simple) et je bouclerais tant que la condition n'est pas remplie.

Natty_Sam_Fayaa
Natty_Sam_Fayaa
Niveau 5
05 janvier 2010 à 20:50:35

je voulai faire ca mais je n'arrive pas à savoir comment faire! ^^ ya une fonction repeat ??

Natty_Sam_Fayaa
Natty_Sam_Fayaa
Niveau 5
05 janvier 2010 à 20:54:36

c'est bon j'ai trouvé c la commande until :content:

Natty_Sam_Fayaa
Natty_Sam_Fayaa
Niveau 5
05 janvier 2010 à 20:56:53

pis j'avoue que j'ai foiré j'ai mis des || partout lol

dnob700
dnob700
Niveau 10
06 janvier 2010 à 02:03:40

until ? ça existe vraiment en C ?

J'aurais tendance à dire qu'il faut juste utiliser une boucle while ou do...while et inverser la condition (avec un NOT -- '!' -- devant par exemple).

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment