J
jyck91
i have done the magic square:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 13
main()
{
FILE *fp;
int i, j, n, row, column;
int magic[SIZE][SIZE], row_sum[SIZE],col_sum[SIZE];
char option[1];
fp = fopen("Magic_square.txt","w");
do {
printf("Enter a magic number (3,5,7,9 or 11):
");fprintf(fp,"Enter a magic number (3,5,7,9 or 11): \n");
scanf("%d", &n);
for (row=0;row<n;row++)
for (column=0;column<n;column++)
magic[row][column] = 0;
row = 0;
column = (n - 1) / 2;
for (i=1;i<=n*n;i++) {
magic[row][column] = i;
if ((row == 0) && (column == 0))
row = 1;
else if (row == 0) {
row = n - 1;
column--;
}
else if (column == 0) {
row--;
column = n - 1;
}
else if (magic[row-1][column-1] == 0) {
row--;
column--;
}
else
row++;
}
for (i=0;i<n;i++)
row_sum = 0;
for (j=0;j<n;j++)
col_sum[j] = 0;
for (i=0;i<n;i++)
for (j=0;j<n;j++)
row_sum += magic[j];
for (j=0;j<n;j++)
for (i=0;i<n;i++)
col_sum[j] += magic[j];
for (row=0;row<n;row++) {
for (column=0;column<n;column++)
printf("======");fprintf(fp,"======");
printf("=\n"); fprintf(fp,"=\n");
for (column=0;column<n;column++)
printf("|%4d ",magic[row][column]); fprintf(fp,"|%4d
",magic[row][column]);
printf("|%4d\n",row_sum[row]); fprintf(fp,"|%4d
\n",row_sum[row]);
}
for (column=0;column<n;column++)
printf("======"); fprintf(fp,"======");
printf("=\n"); fprintf(fp,"=\n");
for (column=0;column<n;column++)
printf(" %4d ",col_sum[column]); fprintf(fp," %4d
",col_sum[column]);
printf("\n"); fprintf(fp,"\n");
printf("Try again (Y or N)? "); fprintf(fp,"Try again (Y or
N)? ");
scanf("%s",option);
} while ((strcmp(option,"Y") == 0) || (strcmp(option,"y") == 0));
fclose(fp);
system("PAUSE");
}
but i want to modify it and open in a text file which 25*25(maximum)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 13
main()
{
FILE *fp;
int i, j, n, row, column;
int magic[SIZE][SIZE], row_sum[SIZE],col_sum[SIZE];
char option[1];
fp = fopen("Magic_square.txt","w");
do {
printf("Enter a magic number (3,5,7,9 or 11):
");fprintf(fp,"Enter a magic number (3,5,7,9 or 11): \n");
scanf("%d", &n);
for (row=0;row<n;row++)
for (column=0;column<n;column++)
magic[row][column] = 0;
row = 0;
column = (n - 1) / 2;
for (i=1;i<=n*n;i++) {
magic[row][column] = i;
if ((row == 0) && (column == 0))
row = 1;
else if (row == 0) {
row = n - 1;
column--;
}
else if (column == 0) {
row--;
column = n - 1;
}
else if (magic[row-1][column-1] == 0) {
row--;
column--;
}
else
row++;
}
for (i=0;i<n;i++)
row_sum = 0;
for (j=0;j<n;j++)
col_sum[j] = 0;
for (i=0;i<n;i++)
for (j=0;j<n;j++)
row_sum += magic[j];
for (j=0;j<n;j++)
for (i=0;i<n;i++)
col_sum[j] += magic[j];
for (row=0;row<n;row++) {
for (column=0;column<n;column++)
printf("======");fprintf(fp,"======");
printf("=\n"); fprintf(fp,"=\n");
for (column=0;column<n;column++)
printf("|%4d ",magic[row][column]); fprintf(fp,"|%4d
",magic[row][column]);
printf("|%4d\n",row_sum[row]); fprintf(fp,"|%4d
\n",row_sum[row]);
}
for (column=0;column<n;column++)
printf("======"); fprintf(fp,"======");
printf("=\n"); fprintf(fp,"=\n");
for (column=0;column<n;column++)
printf(" %4d ",col_sum[column]); fprintf(fp," %4d
",col_sum[column]);
printf("\n"); fprintf(fp,"\n");
printf("Try again (Y or N)? "); fprintf(fp,"Try again (Y or
N)? ");
scanf("%s",option);
} while ((strcmp(option,"Y") == 0) || (strcmp(option,"y") == 0));
fclose(fp);
system("PAUSE");
}
but i want to modify it and open in a text file which 25*25(maximum)