#include <stdio.h>
void buildingCarbonFootprint( void )
{
double electricity;
double gas;
double footprint;
printf ( "\n Building carbon footprint\n " ) ;
printf ( "Enter electricity consumption in kWh: " ) ; scanf ( "%lf" , & electricity
) ;
printf ( "Enter gas consumption in units: " ) ;
footprint =
electricity * 0.45 +
gas * 2.2 ;
printf ( "The building carbon footprint is %.2f kg CO2\n " , footprint) ;
}
void carCarbonFootprint( void )
{
double distance;
double fuelConsumption;
double footprint;
printf ( "\n Car carbon footprint\n " ) ;
printf ( "Enter distance traveled in kilometers: " ) ;
printf ( "Enter fuel consumption in liters: " ) ; scanf ( "%lf" , & fuelConsumption
) ;
footprint = fuelConsumption * 2.31 ;
printf ( "The car carbon footprint is %.2f kg CO2\n " , footprint) ;
printf ( "Distance traveled = %.2f km\n " , distance) ;
}
void bicycleCarbonFootprint( void )
{
double distance;
double footprint;
printf ( "\n Bicycle carbon footprint\n " ) ;
printf ( "Enter distance traveled in kilometers: " ) ;
/*
The bicycle itself does not directly burn fuel,
so its direct carbon footprint is considered zero.
*/
footprint = 0 ;
printf ( "The bicycle carbon footprint is %.2f kg CO2\n " , footprint) ;
printf ( "Distance traveled = %.2f km\n " , distance) ;
}
int main( void )
{
void ( * carbonFootprints[ 3 ] ) ( void ) =
{
buildingCarbonFootprint,
carCarbonFootprint,
bicycleCarbonFootprint
} ;
int choice;
printf ( "Enter 0 to calculate building carbon footprint\n " ) ; printf ( "Enter 1 to calculate car carbon footprint\n " ) ; printf ( "Enter 2 to calculate bicycle carbon footprint\n " ) ;
if ( choice < 0 || choice > 2 )
{
}
else
{
( * carbonFootprints[ choice] ) ( ) ;
}
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGJ1aWxkaW5nQ2FyYm9uRm9vdHByaW50KHZvaWQpCnsKICAgIGRvdWJsZSBlbGVjdHJpY2l0eTsKICAgIGRvdWJsZSBnYXM7CiAgICBkb3VibGUgZm9vdHByaW50OwoKICAgIHByaW50ZigiXG5CdWlsZGluZyBjYXJib24gZm9vdHByaW50XG4iKTsKCiAgICBwcmludGYoIkVudGVyIGVsZWN0cmljaXR5IGNvbnN1bXB0aW9uIGluIGtXaDogIik7CiAgICBzY2FuZigiJWxmIiwgJmVsZWN0cmljaXR5KTsKCiAgICBwcmludGYoIkVudGVyIGdhcyBjb25zdW1wdGlvbiBpbiB1bml0czogIik7CiAgICBzY2FuZigiJWxmIiwgJmdhcyk7CgogICAgZm9vdHByaW50ID0KICAgICAgICBlbGVjdHJpY2l0eSAqIDAuNDUgKwogICAgICAgIGdhcyAqIDIuMjsKCiAgICBwcmludGYoIlRoZSBidWlsZGluZyBjYXJib24gZm9vdHByaW50IGlzICUuMmYga2cgQ08yXG4iLAogICAgICAgICAgIGZvb3RwcmludCk7Cn0KCnZvaWQgY2FyQ2FyYm9uRm9vdHByaW50KHZvaWQpCnsKICAgIGRvdWJsZSBkaXN0YW5jZTsKICAgIGRvdWJsZSBmdWVsQ29uc3VtcHRpb247CiAgICBkb3VibGUgZm9vdHByaW50OwoKICAgIHByaW50ZigiXG5DYXIgY2FyYm9uIGZvb3RwcmludFxuIik7CgogICAgcHJpbnRmKCJFbnRlciBkaXN0YW5jZSB0cmF2ZWxlZCBpbiBraWxvbWV0ZXJzOiAiKTsKICAgIHNjYW5mKCIlbGYiLCAmZGlzdGFuY2UpOwoKICAgIHByaW50ZigiRW50ZXIgZnVlbCBjb25zdW1wdGlvbiBpbiBsaXRlcnM6ICIpOwogICAgc2NhbmYoIiVsZiIsICZmdWVsQ29uc3VtcHRpb24pOwoKICAgIGZvb3RwcmludCA9IGZ1ZWxDb25zdW1wdGlvbiAqIDIuMzE7CgogICAgcHJpbnRmKCJUaGUgY2FyIGNhcmJvbiBmb290cHJpbnQgaXMgJS4yZiBrZyBDTzJcbiIsCiAgICAgICAgICAgZm9vdHByaW50KTsKCiAgICBwcmludGYoIkRpc3RhbmNlIHRyYXZlbGVkID0gJS4yZiBrbVxuIiwKICAgICAgICAgICBkaXN0YW5jZSk7Cn0KCnZvaWQgYmljeWNsZUNhcmJvbkZvb3RwcmludCh2b2lkKQp7CiAgICBkb3VibGUgZGlzdGFuY2U7CiAgICBkb3VibGUgZm9vdHByaW50OwoKICAgIHByaW50ZigiXG5CaWN5Y2xlIGNhcmJvbiBmb290cHJpbnRcbiIpOwoKICAgIHByaW50ZigiRW50ZXIgZGlzdGFuY2UgdHJhdmVsZWQgaW4ga2lsb21ldGVyczogIik7CiAgICBzY2FuZigiJWxmIiwgJmRpc3RhbmNlKTsKCiAgICAvKgogICAgICAgVGhlIGJpY3ljbGUgaXRzZWxmIGRvZXMgbm90IGRpcmVjdGx5IGJ1cm4gZnVlbCwKICAgICAgIHNvIGl0cyBkaXJlY3QgY2FyYm9uIGZvb3RwcmludCBpcyBjb25zaWRlcmVkIHplcm8uCiAgICAqLwoKICAgIGZvb3RwcmludCA9IDA7CgogICAgcHJpbnRmKCJUaGUgYmljeWNsZSBjYXJib24gZm9vdHByaW50IGlzICUuMmYga2cgQ08yXG4iLAogICAgICAgICAgIGZvb3RwcmludCk7CgogICAgcHJpbnRmKCJEaXN0YW5jZSB0cmF2ZWxlZCA9ICUuMmYga21cbiIsCiAgICAgICAgICAgZGlzdGFuY2UpOwp9CgppbnQgbWFpbih2b2lkKQp7CiAgICB2b2lkICgqY2FyYm9uRm9vdHByaW50c1szXSkodm9pZCkgPQogICAgewogICAgICAgIGJ1aWxkaW5nQ2FyYm9uRm9vdHByaW50LAogICAgICAgIGNhckNhcmJvbkZvb3RwcmludCwKICAgICAgICBiaWN5Y2xlQ2FyYm9uRm9vdHByaW50CiAgICB9OwoKICAgIGludCBjaG9pY2U7CgogICAgcHJpbnRmKCJFbnRlciAwIHRvIGNhbGN1bGF0ZSBidWlsZGluZyBjYXJib24gZm9vdHByaW50XG4iKTsKICAgIHByaW50ZigiRW50ZXIgMSB0byBjYWxjdWxhdGUgY2FyIGNhcmJvbiBmb290cHJpbnRcbiIpOwogICAgcHJpbnRmKCJFbnRlciAyIHRvIGNhbGN1bGF0ZSBiaWN5Y2xlIGNhcmJvbiBmb290cHJpbnRcbiIpOwoKICAgIHNjYW5mKCIlZCIsICZjaG9pY2UpOwoKICAgIGlmIChjaG9pY2UgPCAwIHx8IGNob2ljZSA+IDIpCiAgICB7CiAgICAgICAgcHJpbnRmKCJJbnZhbGlkIGNob2ljZS5cbiIpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgICgqY2FyYm9uRm9vdHByaW50c1tjaG9pY2VdKSgpOwogICAgfQoKICAgIHJldHVybiAwOwp9