На самом деле, вы можете использовать структуру в c для хранения координат каждой точки. Это будет полезно, если вы хотите сделать другие вещи с точками.
typedef struct {
int x;
int y;
}coordinates;
В вашем коде
for(i = 0, j = 0; i < Points, j < Points; i++, j++)
{
printf("(X%d, Y%d) = ", j, i);
fflush(stdin);
scanf("(%d, %d)", &x, &y);
Field[y][x] = 1;
}
Использование двух переменных не является обязательным, поскольку значение i
всегда равно j
. Таким образом, вы можете использовать только i
.
for(i = 0; i < Points; i++)
{
printf("(X%d, Y%d) = ",i,i);
fflush(stdin);
scanf("%d,%d", &x, &y);
Field[y][x] = 1;
}
Еще одна вещь, вы должны использовать (i < Points) && (j < Points)
вместо i < Points, j < Points
.
Если вы используете 2d массив, Код @Neminda Prabhashwara выглядит нормально. Но если вы хотите использовать структуру, как я упоминал выше, вы можете увидеть мой код (он может быть не оптимизирован). Это просто показывает мою идею.
#include <stdio.h>
#include <stdlib.h>
#define ROWS 5
#define COLS 5
#define N 25
typedef struct {
int x;
int y;
}coordinates;
void sorting_coord(coordinates * a, int n) {
for(int i = 0; i < n - 1; i++){
for(int j = i + 1; j < n; j++){
if(a[i].y > a[j].y){
coordinates tg = a[i];
a[i] = a[j];
a[j] = tg;
}
}
}
}
int main()
{
int i;
int Points;
coordinates * coord;
printf("Enter the number of points: \n");
scanf(" %d", &Points);
coord = malloc(Points * sizeof(coordinates));
if(Points < N && Points >= 0){
printf("Enter the x and y coordinates of the points: \n");
for(i = 0; i < Points; i++)
{
printf("(X%d, Y%d) = ", i, i);
fflush(stdin);
scanf("%d, %d", &coord[i].x, &coord[i].y);
}
printf("\n");
}
else{
printf("The inserted number exceeds the maximum possible number \n");
}
sorting_coord(coord, Points);
int temp;
for(i = ROWS - 1; i > 0; i--) {
temp = 0;
printf("%d", i);
for (int k = 0; k < Points; k++) {
if(coord[k].y == i ) {
for (int j = 0; j < (coord[k].x - temp); j++) {
printf("\t");
}
if (coord[k].x != 0)
printf("°");
temp = coord[k].x;
}
}
printf("\n\n\n");
}
for(int j = 0; j < COLS; j++){
printf("%d\t", j);
}
return 0;
}