J'ai un programme avec une boucle en dehors de la fonction principale:Pourquoi cette boucle continue-t-elle sans arrêt?
#include <stdio.h>
void inputMaze(char maze[], int maxX, int maxY);
int main()
{
//Number of columns
int maxX= 0;
//Number of rows
int maxY= 0;
printf("Number of rows? ");
scanf("%d", &maxY);
printf("Number of columns? ");
scanf("%d", &maxX);
if(maxX*maxY>300){
printf("Number of cells exceeds maximum!/n");
}
char maze[maxX][maxY];
inputMaze(maze,maxX, maxY);
return 0;
}
void inputMaze(char maze[], int maxX, int maxY){
int i;
for(i=0; i<maxY; i=i+1){
printf("Input row %d ", i);
scanf(" %c", &maze[i]);
}
}
La sortie me donne ceci:
Number of rows? 10
Number of columns? 10
Input row 0 S#####
Input row 1 Input row 2 Input row 3 Input row 4 Input row 5 Input row 6 D.....
Input row 7 Input row 8 Input row 9
Process returned 0 (0x0) execution time : 11.526 s
Press any key to continue.
Je ne veux pas d'entrée ligne 1 ligne d'entrée 2 .... être imprimé comme ça. J'essaye de l'obtenir afin qu'il imprime la ligne d'entrée i sur une nouvelle ligne chaque fois et que l'utilisateur puisse entrer une nouvelle ligne. Je pense que le problème pourrait être lié au scanf stocké dans un tableau 2D. Je voudrais être ainsi qu'une ligne dans le tableau de labyrinthe est écrite à la fois et que chaque élément de la ligne est repris par une lettre, mais je ne peux pas sembler le faire.
Merci! Donc, fondamentalement, vous venez de changer% c en% s et cela ajoute automatiquement la chaîne en tant que tableau? Comment se fait-il que le programme ne tombe pas en panne/array à court d'espace si je crée maxX et maxY 6 et que j'entre une chaîne de 7 caractères? EDIT: À quoi ressemble-t-il dans un tableau? Lorsque j'ajoute une boucle for qui imprime% c dans le labyrinthe [i], il semble juste imprimer le premier symbole de chaque ligne. – CoderEH
pouvez-vous l'exécuter dans ideone et poster un lien ici? Je suis prêt à aider – Sridharan
https://ideone.com/FGjz5t Merci! – CoderEH