#include <stdio.h> #include <math.h> #include <stdlib.h> #include <ctype.h> /* global function that you can use to avoid copy/pasted code */ void get_input(double *frequency_factor, double *rate_constant, double *activation_energy, double *temperature ) { printf("Please key in frequency_factor"); scanf("%lf",frequency_factor); printf("Please key in rate constant"); scanf("%lf", rate_constant); printf("Please key in actvation_energy"); scanf("%lf", activation_energy); printf("Please key in temperature"); scanf("%lf", temperature); } int main (void) { char letter, tmp; double rate_constant, frequency_factor, activation_energy, temperature; puts("This is an Arrhenius Equation calculator\n" "k=Ae^(-Ea/RT)\n" "A=frequency_factor\n" "k=rate_constant\n" "Ea=activation_energy\n" "R=8.314*10^-3 kJ/mol*k\n" "T=temperature\n\n"); puts("what do you want to find?\n\n" "A)frequency_factor\n" "B)rate_constant\n" "C)activation_energy\n" "D)temperature\n\n"); /* new call here, just for organization's sake. */ tmp = getchar(); getchar(); letter = toupper(tmp); if (letter=='A') { get_input(&rate_constant, &activation_energy, &temperature); frequency_factor=(rate_constant)/pow(2.72,((-activation_energy)/(0.008314)*(temperature))); printf("the frequency_factor calculated is %.3f,\n",frequency_factor); } else if (letter=='B') { get_input(&frequency_factor, &activation_energy, &temperature); rate_constant=(frequency_factor)*(pow(2.72,(-activation_energy)/(0.008314)*(temperature))); printf("the rate_constant calculated is %.3f,\n",rate_constant); } else if (letter=='C') { get_input(&frequency_factor, &rate_constant, &temperature); activation_energy=(-0.008314)*(temperature)*(log(rate_constant)/(frequency_factor)); printf("the activation_energy calculated is %.3f,\n",activation_energy); } else if (letter=='D') { get_input(&frequency_factor, &rate_constant, &activation_energy); temperature=(-activation_energy)/((0.00831)*(log(rate_constant)/(frequency_factor))); printf("the temperature calculated is %.3f,\n",temperature); } else printf("You entered the wrong input. Please key in alphabet from A to D only. Thank you !"); }
Can anyone teach me how to complete this calculator please. @_@