#include <stdio.h>
void buildingFootprint( void ) {
double electricityKWh;
printf ( "\n [Building] Enter monthly electricity consumption (kWh): " ) ; scanf ( "%lf" , & electricityKWh
) ; printf ( "Building Annual Carbon Footprint: %.2f kg CO2\n " , electricityKWh
* 12 * 0.4 ) ; }
void carFootprint( void ) {
double miles;
printf ( "\n [Car] Enter annual miles driven: " ) ; printf ( "Car Annual Carbon Footprint: %.2f kg CO2\n " , miles
* 0.404 ) ; }
void bicycleFootprint( void ) {
puts ( "\n [Bicycle] Direct operational emissions: 0.00 kg CO2 (Eco-friendly)." ) ; }
int main( void ) {
void ( * footprintCalculators[ 3 ] ) ( void ) = { buildingFootprint, carFootprint, bicycleFootprint} ;
int choice;
printf ( "Calculate Carbon Footprint for:\n " "0: Building\n 1: Car\n 2: Bicycle\n Enter choice: " ) ;
if ( choice >= 0 && choice <= 2 ) {
( * footprintCalculators[ choice] ) ( ) ;
} else {
puts ( "Invalid selection." ) ; }
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGJ1aWxkaW5nRm9vdHByaW50KHZvaWQpIHsKICAgIGRvdWJsZSBlbGVjdHJpY2l0eUtXaDsKICAgIHByaW50ZigiXG5bQnVpbGRpbmddIEVudGVyIG1vbnRobHkgZWxlY3RyaWNpdHkgY29uc3VtcHRpb24gKGtXaCk6ICIpOwogICAgc2NhbmYoIiVsZiIsICZlbGVjdHJpY2l0eUtXaCk7CiAgICBwcmludGYoIkJ1aWxkaW5nIEFubnVhbCBDYXJib24gRm9vdHByaW50OiAlLjJmIGtnIENPMlxuIiwgZWxlY3RyaWNpdHlLV2ggKiAxMiAqIDAuNCk7Cn0KCnZvaWQgY2FyRm9vdHByaW50KHZvaWQpIHsKICAgIGRvdWJsZSBtaWxlczsKICAgIHByaW50ZigiXG5bQ2FyXSBFbnRlciBhbm51YWwgbWlsZXMgZHJpdmVuOiAiKTsKICAgIHNjYW5mKCIlbGYiLCAmbWlsZXMpOwogICAgcHJpbnRmKCJDYXIgQW5udWFsIENhcmJvbiBGb290cHJpbnQ6ICUuMmYga2cgQ08yXG4iLCBtaWxlcyAqIDAuNDA0KTsKfQoKdm9pZCBiaWN5Y2xlRm9vdHByaW50KHZvaWQpIHsKICAgIHB1dHMoIlxuW0JpY3ljbGVdIERpcmVjdCBvcGVyYXRpb25hbCBlbWlzc2lvbnM6IDAuMDAga2cgQ08yIChFY28tZnJpZW5kbHkpLiIpOwp9CgppbnQgbWFpbih2b2lkKSB7CiAgICB2b2lkICgqZm9vdHByaW50Q2FsY3VsYXRvcnNbM10pKHZvaWQpID0ge2J1aWxkaW5nRm9vdHByaW50LCBjYXJGb290cHJpbnQsIGJpY3ljbGVGb290cHJpbnR9OwogICAgaW50IGNob2ljZTsKCiAgICBwcmludGYoIkNhbGN1bGF0ZSBDYXJib24gRm9vdHByaW50IGZvcjpcbiIKICAgICAgICAgICAiMDogQnVpbGRpbmdcbjE6IENhclxuMjogQmljeWNsZVxuRW50ZXIgY2hvaWNlOiAiKTsKICAgIHNjYW5mKCIlZCIsICZjaG9pY2UpOwoKICAgIGlmIChjaG9pY2UgPj0gMCAmJiBjaG9pY2UgPD0gMikgewogICAgICAgICgqZm9vdHByaW50Q2FsY3VsYXRvcnNbY2hvaWNlXSkoKTsKICAgIH0gZWxzZSB7CiAgICAgICAgcHV0cygiSW52YWxpZCBzZWxlY3Rpb24uIik7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==