정보처리기사 실기 · 2025년 1회 · 17번

Q.172025년1회9과목 · C언어배점 5점
아래 코드의 출력값을 작성하시오.
#include <stdio.h>
#include <stdlib.h>
void set(int** arr, int* data, int rows, int cols){
    for(int i=0; i<rows*cols; ++i)
        arr[((i+1)/rows)%rows][(i+1)%cols] = data[i];
}
int main(){
    int rows=3, cols=3, sum=0;
    int data[] = {5,2,7,4,1,8,3,6,9};
    int** arr;
    arr = (int**)malloc(sizeof(int*)*rows);
    for(int i=0; i<cols; i++)
        arr[i] = (int*)malloc(sizeof(int)*cols);
    set(arr, data, rows, cols);
    for(int i=0; i<rows*cols; i++)
        sum += arr[i/rows][i%cols] * (i%2==0 ? 1 : -1);
    for(int i=0; i<rows; i++) free(arr[i]);
    free(arr);
    printf("%d", sum);
}

이 문제는 풀이 화면에서 직접 실행해 풀 수 있어요.

이 회차 문제 풀어보기 →정보처리기사 실기 더 풀기