Ý chính của chương trình là lặp qua mảng đa chiều và thêm các float vào rainFall. Trong hầu hết các phần, chương trình hoạt động, nhưng điều tôi không thể hiểu là ở lần lặp đầu tiên, dòng 0, không có float nào được thêm vào. Tôi chắc chắn đây là một điều cực kỳ đơn giản mà tôi đang thiếu vì tôi còn khá mới với C.
int main()
{
int tôi, j;
mưa trôiLượng mưa = 0,0;
thời tiết nổi[5][12] =
{{2010, 1.1, 1.1, 1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1},
{2011,1.1, 1.1, 1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1},
{2012,1.1, 1.1, 1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1},
{2013,1.1, 1.1, 1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1},
{2014,1.1, 1.1, 1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1},
};
// vòng lặp ngoài lặp qua nhiều năm
vì(i = 0; i < 5; i++)
{
printf("%.f\n", thời tiết[i][0]);
printf("Lượng mưa trung bình là %.2f\n", rainFall);
mưaMùa thu = 0;
// vòng lặp bên trong lặp qua các tháng
// thêm vào lượng mưaTrung bình mùa thu
for(j = 1; j < 12; j++)
{
mưaMùa thu += thời tiết[i][j] / 12;
}
}
return 0;
}
Đầu tiên, ma trận thời tiết của bạn trông giống như mỗi hàng thể hiện giá trị thông tin của một năm. Mục đầu tiên là số năm và các phần tử khác là thông tin cho mỗi tháng. Vì một năm có 12 tháng nên tôi nghĩ nên đổi thànhThời tiết[5] [13]
Mặc dù vậy, khi đặt giá trị thời tiết, bạn chỉ gõ 10 tháng mỗi hàng nên ma trận không đầy đủ.
Cuối cùng, bạn nên tính giá trị trung bình trước khi in giá trị của nó. Theo cách bạn đã thực hiện, bạn đã "bỏ lỡ một" và hiển thị giá trị trung bình của các hàng được tính ở lần lặp trước. Lần lặp đầu tiên bạn sẽ in ra số 0 ngay lập tức. Mã với những thay đổi được đề xuất của tôi như sau:
int main()
{
int tôi, j;
mưa trôiLượng mưa = 0,0;
thời tiết nổi[5][13] =
{
// năm, 01 02 03 04 05 06 07 08 09 10 11 12
{2010,1.1, 1.1, 1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1},
{2011,1.1, 1.1, 1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1},
{2012,1.1, 1.1, 1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1},
{2013,1.1, 1.1, 1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1},
{2014,1.1, 1.1, 1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1},
};
// vòng lặp ngoài lặp qua nhiều năm
vì(i = 0; i < 5; i++)
{
mưaMùa thu = 0;
// vòng lặp bên trong lặp qua các tháng
// thêm vào lượng mưaTrung bình mùa thu
for(j = 1; j < 13; j++)
{
mưaMùa thu += thời tiết[i][j] / 12;
}
printf("%.f\n", thời tiết[i][0]);
printf("Lượng mưa trung bình là %.2f\n", rainFall);
}
return 0;
}
mang lại kết quả mong đợi:
2010
Lượng mưa trung bình là 1,10
2011
Lượng mưa trung bình là 1,10
2012
Lượng mưa trung bình là 1,10
2013
Lượng mưa trung bình là 1,10
2014
Lượng mưa trung bình là 1,10
Tất nhiên, để hình dung ra loại vấn đề này, bạn có thể kiểm tra nó trong những năm khác nhau với các giá trị kỳ vọng khác nhau, để bạn thấy "sai lệch một" mà tôi đã đề cập.
Tôi là một lập trình viên xuất sắc, rất giỏi!