인프런 커뮤니티 질문&답변
10.6 2차원 배열 연습문제 구현해봤습니다.
작성
·
21
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 };로 바꿔도 동일하게 작동하는데요, 왜 그런 것인지 한 번 생각해보세요.질문을 작성하실 때 코드 블록 기능을 사용하면 더 깔끔하게 코드를 첨부할 수 있으니 한 번 사용해보세요.





