Je dois faire un programme qui prend le périmètre d'une forme, dessinés dans des astérisques ( ) par l'utilisateur, puis de remplir la forme avec des astérisques ( ).
Il compile bien mais mon problème est que lorsque je réimprime le périmètre de la forme, il imprime des symboles funky comme :
1ÿu x { @
Un autre problème est qu'une fois que fill est exécuté, les astérisques sont tous imprimés sur une seule ligne ?
Voici mon code (il est assez long, désolé)
#include <stdio.h>
#include "simpio.h"
#include "genlib.h"
void getArray(char array[][20]);
int getRow(void);
int getColumn(void);
void fill(char array[][20], int row, int column);
void dispArray(char array[][20]);
void dispMsg(void);
main()
{
char array[20][20];
int row, column;
dispMsg();
getArray(array);
printf("Please enter an interior point from which the program starts filling.\n");
row=getRow();
column=getColumn();
fill(array, row, column);
dispArray(array);
getchar();
}
void dispMsg(void)
{
printf("This program will ask you to input the outline of a shape, and it will fill the shape up.\n");
printf("To input the perimeter of your shape please use asterisks(*), and the <enter> key to start a new line.\n");
}
void fill(char array[][20], int row, int column)
{
if(array[row][column]!=' '||row>20||row<20||column>20||column<20)
{
}
else
{
array[row][column]=='*';
fill(array, row, column+1);
fill(array, row+1, column);
fill(array, row, column-1);
fill(array, row-1, column);
}
}
void dispArray(char array[][20])
{
int i, j;
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
{
printf("%c", array[i][j]);
}
}
}
int getRow(void)
{
int row;
printf("Enter the row of the point: ");
row=GetInteger();
return(row);
}
int getColumn(void)
{
int column;
printf("Enter the column of the point: ");
column=GetInteger();
return(column);
}
void getArray(char array[][20])
{
int i, j;
char input;
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
{
array[i][j] = ' ';
}
}
while(true)
{
input=getchar();
if(input=='\n')
{
i++;
j=0;
}
else if(input=='!')
{
break;
}
else
{
array[i][j]=input;
j++;
}
}
printf("Your input shape is: \n");
for(j=0;j<20;j++)
{
for(i=0;i<20;i++);
{
printf("%c", array[i][j]);
}
}
}
Merci beaucoup :)