#include #include "myio_c.h" #define COL 5 void fill_1d_all(int [], int, int); void fill_2d_all(int [][COL], int, int, int, int); void write_2d(int [][COL], int, int, int, int); void fill_2d_part(int [][COL], int, int, int, int, int *); void main(void) { int table[4][COL]; int rows, i; fill_2d_all(table, 0, 3, 0, COL - 1); write_2d(table, 0, 3, 0, COL - 1); fill_2d_part(table, 0, 3, 0, COL - 1, &rows); write_2d(table, 0, rows, 0, COL - 1); for (i = 0; i <= 3; i++) fill_1d_all(table[i], 0, COL - 1); write_2d(table, 0, 3, 0, COL - 1); } void fill_1d_all(int array[], int low, int high) { int i; for (i = low; i <= high; i++) { printf("\nEnter a value for element #%d: ", i + 1); get_int(&array[i]); } } void fill_2d_all(int array[][COL], int lrow, int hrow, int lcol, int hcol) { int i, j; for (i = lrow; i <= hrow; i++) { printf("\nEnter values for row %d: ", i + 1); for(j = lcol; j <= hcol; j++) get_int(&array[i][j]); } } void write_2d(int array[][COL], int lrow, int hrow, int lcol, int hcol) { int i, j; for (i = lrow; i <= hrow; i++) { printf("\n"); for(j = lcol; j <= hcol; j++) printf("%d\t", array[i][j]); } } void fill_2d_part(int array[][COL], int lrow, int hrow, int lcol, int hcol, int *actual_row) { int i, j; int temp, stop_value = -1; i = lrow; do { printf("\nEnter values for row %d or %d to quit ", i + 1, stop_value); get_int(&temp); if (temp != -1) { array[i][lcol] = temp; for(j = lcol + 1; j <= hcol; j++) get_int(&array[i][j]); i++; } } while ((i <= hrow) && (temp != stop_value)); *actual_row = i - 1; }