Exercises 1 to 5 calculate BMI (Body Mass Index), an index related to obesity, with input of height and weight. Final program is composed of a few functions. Start with Exercise 1 step by step.

Below is a source code to calculate BMI with input of height and weight. In the source code, a function, "bmi_cal", is defined to calculate BMI. Write the source code, save it as "func1.c", and confirm whether it can run properly.

/* Calculation of BMI (Body Mass Index) */ #include <stdio.h>double bmi_cal(double h, double w){ // BMI = weight(kg) / height(m) / height(m) return w/h/h; } int main(void) { double height, weight, bmi; printf("Input height(m) and weight(kg) "); scanf("%lf%lf", &height, &weight); // Calculation of BMIbmi = bmi_cal(height, weight);printf("%5.2f m, %6.2f kg: BMI = %6.2f\n", height, weight, bmi); return (0); }

(Execution result) $ $./a.outInput height(m) and weight(kg)1.65 701.65 m, 70.00 kg: BMI = 25.71 $

Below is a source code to calculate BMI with input of height and weight. In the source code, a function, "bmi_cal", is defined to calculate BMI. Write the source code, complement the expression hidden by "******" and save it as "func2.c". Confirm whether it can run properly.

/* Calculation of BMI (Body Mass Index) and Standard weight */ #include <stdio.h>double bmi_cal(double h, double w){ // BMI = weight(kg) / height(m) / height(m) return w/h/h; }double std_weight(double h){ // Standard weight (kg) = height(m) * height(m) * 22 return h*h*22; } int main(void) { double height, weight, bmi, sweight; printf("Input height(m) and weight(kg) "); scanf("%lf%lf", &height, &weight); // Calculation of BMIbmi = bmi_cal(height, weight);printf("%5.2f m, %6.2f kg: BMI = %6.2f\n", height, weight, bmi); // Calculation of standard weightsweight = std_weight(printf("%5.2f m, %6.2f kg: Standard weight = %6.2f kg\n", height, weight, sweight); return (0); }***********);

(Execution result) $ $./a.outInput height(m) and weight(kg)1.60 68.51.60 m, 68.50 kg: BMI = 26.76 1.60 m, 68.50 kg: Standard weight = 56.32 kg $

Below source code is almost same as func2.c, but values returned by function are different. With reference to such difference, type the source code and save it as "func3.c".

/* Calculation of BMI (Body Mass Index) and Standard weight */ #include <stdio.h>voidbmi_cal(double h, double w) { // BMI = weight(kg) / height(m) / height(m) printf("%5.2f m, %6.2f kg: BMI = %6.2f\n", h, w, w/h/h); }voidstd_weight(double h) { // Standard weight (kg) = height(m) * height(m) * 22 printf("%5.2f m: Standard weight = %6.2f kg\n", h, h*h*22); } int main(void) { double height, weight; printf("Input height(m) and weight(kg) "); scanf("%lf%lf", &height, &weight); // Calculation of BMIbmi_cal(height, weight);// Calculation of standard weightstd_weight(return (0); }***********);

(Execution result) $ $./a.outInput height(m) and weight(kg)1.60 68.51.60 m, 68.50 kg: BMI = 26.76 1.60 m, Standard weight = 56.32 kg $

Based on func2.c, below source code is intended to show message of obesity. Write the source code, complement the expression hidden by "******" and save it as "func4.c". Confirm whether it can run properly.

/* Calculation of BMI (Body Mass Index) and Standard weight */ #include <stdio.h>double bmi_cal(double h, double w){ // BMI = weight(kg) / height(m) / height(m) return w/h/h; }double std_weight(double h){ // Standard weight (kg) = height(m) * height(m) * 22 return h*h*22; }void message(double h, double w, double bmi, double sweight) {printf("%5.2f m, %6.2f kg: BMI = %6.2f\n", h, w, w/h/h); printf("%5.2f m: Standard weight = %6.2f kg\n", h, h*h*22); if (bmi < 18.5) { printf("You have low weight\n"); } else if (bmi < 25) { printf("You have normal weight\n"); } else if (bmi < 30) { printf("Obesity (1st-degree)\n"); } else if (bmi < 35) { printf("Obesity (2nd-degree)\n"); } else if (bmi < 40) { printf("Obesity (3rd-degree)\n"); } else { printf("Obesity (4th-degree)\n"); } } int main(void) { double height, weight, bmi, sweight; printf("Input height(m) and weight(kg) "); scanf("%lf%lf", &height, &weight); // Calculation of BMIbmi = bmi_cal(height, weight);printf("%5.2f m, %6.2f kg: BMI = %6.2f\n", h, w, bmi); // Calculation of standard weightsweight = std_weight(// Message of obesity***********);message(return (0); }********************);

(Execution result) $ $./a.outInput height(m) and weight(kg)1.60 68.51.60 m, 68.50 kg: BMI = 26.76 1.60 m, Standard weight = 56.32 kg Obesity (1st-degree) $

Based on func4.c, we want to keep showing the program until Ctrl-d is input. Write the source code to meet this requirement using while-loop or for-loop, save it as "func5.c", and confirm whether it can run properly.

(Execution result) $ $./a.out[No. 1] Input height(m) and weight(kg)1.80 781.80 m, 78.00 kg: BMI = 24.07 1.80 m, Standard weight = 71.28 kg You have low weight [No. 2] Input height(m) and weight(kg)1.56 701.56 m, 70.00 kg: BMI = 28.76 1.56 m, Standard weight = 53.54 kg Obesity (1st-degree) [No. 3] Input height(m) and weight(kg)1.60 901.60 m, 90.00 kg: BMI = 35.16 1.60 m, Standard weight = 56.32 kg Obesity (3rd-degree) [No. 4] Input height(m) and weight(kg)<- Ctrl + d$

Lessons for C programming Junichi Susaki, Kyoto University