έγραψε:Write a program that asks the user to enter the numbers from 1 to 16 (in any order) and then displays the numbers in a 4 by 4 arrangement, followed by the sums of the rows, columns, diagonals:
- Μορφοποιημένος Κώδικας: Επιλογή όλων
Enter the numbers from 1 to 16 in any order:
16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
Row sums: 34 34 34 34
Column sums: 34 34 34 34
Diagonal sums: 34 34
Η λύση μου:
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
#include <stdio.h>
int main(void)
{
int n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16,\
row_1_sum, row_2_sum, row_3_sum, row_4_sum, column_1_sum, column_2_sum,\
column_3_sum, column_4_sum, diagonal_1_sum, diagonal_2_sum;
printf("Enter the numbers from 1 to 16 in any order:\n");
scanf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", \
&n1, &n2, &n3, &n4, &n5, &n6, &n7, &n8, &n9, &n10, &n11, &n12, &n13, &n14, &n15, &n16);
printf("\n%2d %2d %2d %2d\n", n1, n2, n3, n4);
printf("%2d %2d %2d %2d\n", n5, n6, n7, n8);
printf("%2d %2d %2d %2d\n", n9, n10, n11, n12);
printf("%2d %2d %2d %2d\n\n", n13, n14, n15, n16);
row_1_sum = n1 + n2 + n3 + n4;
row_2_sum = n5 + n6 + n7 + n8;
row_3_sum = n9 + n10 + n11 + n12;
row_4_sum = n13 + n14 + n15 + n16;
column_1_sum = n1 + n5 + n9 + n13;
column_2_sum = n2 + n6 + n10 + n14;
column_3_sum = n3 + n7 + n11 + n15;
column_4_sum = n4 + n8 + n12 + n16;
diagonal_1_sum = n1 + n6 + n11 + n16;
diagonal_2_sum = n4 + n7 + n10 + n13;
printf("Row sums: %d %d %d %d\n", row_1_sum, row_2_sum, row_3_sum, row_4_sum);
printf("Column sums: %d %d %d %d\n", column_1_sum, column_2_sum, column_3_sum, column_4_sum);
printf("Diagonal sums: %d %d\n", diagonal_1_sum, diagonal_2_sum);
return 0;
}
Το αποτέλεσμα που παίρνω είναι το επιθυμητό, αλλά η υλοποίηση δεν μου αρέσει καθόλου.
Υπάρχει κάποιος καλύτερος τρόπος να κάνω το παραπάνω; (Δεδομένου ότι δεν ξέρω πολλά περισσότερα προς το παρών απ' το να χρησιμοποιώ τις printf() και scanf().)



