Write a C program that does the following function #define L_WIDTH 80 #define W_
ID: 650183 • Letter: W
Question
Write a C program that does the following function #define L_WIDTH 80 #define W_WIDTH 20 #define NCOLS 10
Function: extract_window * Description: populates 2D array window with sub-matrix * of landscape 2D array starting at column * start_col. * Returns 1 on success, 0 on failure. * Fails when start_col is not valid -- i.e., * specifies a window not contained in the * landscape. * * Note: nrows applies to both the landscape and the window. */ extern int extract_window(char landscape[][L_WIDTH], char window[][W_WIDTH], int nrows, int start_column);
Explanation / Answer
#include <stdio.h>
#include "a.c"
#define L_WIDTH 80
#define W_WIDTH 20
extern int extract_window(char landscape[][L_WIDTH], char window[][W_WIDTH], int nrows, int start_column){
if(start_column + W_WIDTH > L_WIDTH) return 0;
int i, j;
for(i = 0; i < nrows; i++){
for(j = start_column; j < start_column + W_WIDTH; j++){
landscape[i][j] = window[i][j];
}
}
return 1;
}
int main(){
char l[10][L_WIDTH], w[10][W_WIDTH];
int i, j;
for(i = 0; i < 10; i++){
for(j = 0; j < W_WIDTH; j++){
w[i][j] = '*';
}
}
for(i = 0; i < 10; i++){
for(j = 0; j < L_WIDTH; j++){
l[i][j] = ' ';
}
}
int temp = extract_window(l, w, 10, 5);
if(temp == 0){
printf("Invalid values ");
return 0;
}
for(i = 0; i < 10; i++){
for(j = 0; j < L_WIDTH; j++){
printf("%c", l[i][j]);
}
printf(" ");
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.