C PRIMER PLUS(第六版编程练习)10.13编程练习

    技术2025-01-29  7

    /*重写程序清单10.7的rain.c程序,把main()中的主要任务都改成用函数来完成。 #include<stdio.h> #define MONTHS 12 // 一年 的 月 份数 #define YEARS 5 // 年数 int main(void) { // 用 2010 ~ 2014 年的 降水量 数据 初始化 数组 const float rain[YEARS][MONTHS] = { {4.3,4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6}, {8.5,8.2,1.2,1.6,2.4,0.0,5.2,0.9,0.3,0.9,1.4,7.3}, {9.1,8.5,6.7,4.3,2.1,0.8,0.2,0.2,1.1,2.3,6.1,8.4}, {7.2,9.9,8.4,3.3,1.2,0.8,0.4,0.0,0.6,1.7,4.3,6.2}, {7.6,5.6,3.8,2.8,3.8,0.2,0.0,0.0,0.0,1.3,2.6,5.2} }; int year, month; float subtot, total; printf(" YEAR RAINFALL (inches)\n"); for (year = 0, total = 0; year < YEARS; year++) { // 每一年, 各月 的 降水量 总和 for (month = 0, subtot = 0; month < MONTHS; month++) subtot += rain[year][month]; printf("%5d %15.1f\n", 2010 + year, subtot); total += subtot; // 5 年的 总 降水量 } printf("\nThe yearly average is %.1f inches.\n\n", total / YEARS); printf(" MONTHLY AVERAGES:\n\n"); printf("Jan Feb Mar Apr May Jun Jul Aug Sep Oct "); printf("Nov Dec\n"); for (month = 0; month < MONTHS; month++) { // 每个 月, 5 年的 总 降水量 for (year = 0, subtot = 0; year < YEARS; year++) subtot += rain[year][month]; printf("%4.1f\t", subtot / YEARS); } printf("\n"); return 0; } */ /* rain. c -- 计算 每 年的 总 降水量、 年平均 降水量 和 5 年中 每月 的 平均 降水量 */ #include<stdio.h> #define MONTHS 12 // 一年 的 月 份数 #define YEARS 5 // 年数 void year_sum(float rain[][MONTHS]); void output(void); void month_sum(float rain[][MONTHS]); int main( void) { // 用 2010 ~ 2014 年的 降水量 数据 初始化 数组 const float rain[ YEARS][ MONTHS] = { {4.3,4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6}, {8.5,8.2,1.2,1.6,2.4,0.0,5.2,0.9,0.3,0.9,1.4,7.3}, {9.1,8.5,6.7,4.3,2.1,0.8,0.2,0.2,1.1,2.3,6.1,8.4}, {7.2,9.9,8.4,3.3,1.2,0.8,0.4,0.0,0.6,1.7,4.3,6.2}, {7.6,5.6,3.8,2.8,3.8,0.2,0.0,0.0,0.0,1.3,2.6,5.2} }; printf(" YEAR RAINFALL (inches)\n"); year_sum(rain); output(); month_sum(rain); return 0; } void year_sum(float rain[][MONTHS]) { float subtot, total; int month, year; for (year = 0, total = 0; year < YEARS; year++) { // 每一年, 各月 的 降水量 总和 for (month = 0, subtot = 0; month < MONTHS; month++) subtot += rain[year][month]; printf("%5d %15.1f\n", 2010 + year, subtot); total += subtot; // 5 年的 总 降水量 } printf("\nThe yearly average is %.1f inches.\n\n", total / YEARS); } void output(void) { printf(" MONTHLY AVERAGES:\n\n"); printf("Jan Feb Mar Apr May Jun Jul Aug Sep Oct "); printf("Nov Dec\n"); } void month_sum(float rain[][MONTHS]) { int month, year; float subtot, total; for (month = 0; month < MONTHS; month++) { // 每个 月, 5 年的 总 降水量 for (year = 0, subtot = 0; year < YEARS; year++) subtot += rain[year][month]; printf("%4.1f\t", subtot / YEARS); } printf("\n"); }
    Processed: 0.011, SQL: 9