강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

wjdwn535님의 프로필 이미지
wjdwn535

작성한 질문수

홍정모의 따라하며 배우는 C언어

10.6 2차원 배열 연습문제

10.6 2차원 배열 연습문제 구현해봤습니다.

작성

·

22

1

1차원 배열 각각을 2차원 배열에 포인터를 사용해서 값을 추가해주었습니다.

 

#define CRTSECURE_NO_WARNINGS

#include <stdio.h>

#define MONTH 12

#define YEARS 3

int main()

{

double year2022[MONTH] = { -2.2, -1.1, 7.7, 14.8, 19.1, 23.3, 27.3, 25.7, 22.4, 14.6, 10, -2.8 };

double year2023[MONTH] = { -1.5, 2.3, 9.8, 13.8, 19.5, 23.4, 26.7, 27.2, 23.7, 15.8, 6.8, 1.1 };

double year2024[MONTH] = { -0.5, 3.8, 7, 16.3, 18.5, 24.6, 26.6, 29.3, 25.5, 16.7, 9.7, 0.8 };

/*

1. Use 2D array

2. Print data

3. Calculate and print yearly average temperatures of 3 years

4. Calculate and print monthly average temperatures for 3 years

*/

double temperatures[YEARS][MONTH];

double* ptr[3] = { &year2022, &year2023, &year2024 };

for (int i = 0; i < YEARS; i++)

{

for (int j = 0; j < MONTH; j++)

{

temperatures[i][j] = *(ptr[i] + j);

}

}

printf("[Temperature Data]\n");

for (int i = 0; i <= MONTH; i++)

{

if (i == 0)

{

printf("Your index :\t");

continue;

}

printf("%d\t", i);

}

printf("\n");

for (int i = 0; i < YEARS; i++)

{

for (int j = 0; j < MONTH; j++)

{

if (j == 0)

{

printf("Year %d :\t", i);

}

printf("%.1f\t", temperatures[i][j]);

}

printf("\n");

}

printf("\n");

double sum = 0.0;

printf("[Yearly average temperature of 3 years]\n");

for (int i = 0; i < YEARS; i++)

{

sum = 0.0;

printf("Year %d : ", i);

for (int j = 0; j < MONTH; j++)

{

sum += *(ptr[i] + j);

}

printf("average temperature = %.1f\n", sum / MONTH);

}

printf("\n");

printf("[Monthly average temperatures for 3 years]\n");

for (int i = 0; i <= MONTH; i++)

{

if (i == 0)

{

printf("Your index :\t");

continue;

}

printf("%d\t", i);

}

printf("\n");

printf("Avg Temps :\t");

for (int i = 0; i < MONTH; i++)

{

sum = 0.0;

for (int j = 0; j < YEARS; j++)

{

sum += temperatures[j][i];

}

printf("%.1f\t", sum / YEARS);

}

return 0;

}

 

답변 1

0

안녕하세요? 질문&답변 도우미 durams입니다.

잘 구현하신 것 같습니다.

  • double* ptr[3] = { &year2022, &year2023, &year2024 };double* ptr[3] = { year2022, year2023, year2024 };로 바꿔도 동일하게 작동하는데요, 왜 그런 것인지 한 번 생각해보세요.

  • 질문을 작성하실 때 코드 블록 기능을 사용하면 더 깔끔하게 코드를 첨부할 수 있으니 한 번 사용해보세요.

wjdwn535님의 프로필 이미지
wjdwn535

작성한 질문수

질문하기