Exercise 1
Write a C program that reads a temperature in Fahrenheit and converts that temperature to the same temperature in Celsius.
Solution 1
Let us use the formula: C/5=(F-32)/9.
#include <stdio.h> int main() { float F, C; printf("Enter a temperature in Fahrenheit : "); scanf("%f", &F); C = 5 * (F - 32) / 9; printf("%f F = %f C\n", F, C); }
Exercise 2
Write a C program that reads an integer, computes the square root of the integer, and prints the square root in the following formats:
a) an integer in decimal,
b) an integer in hexadecimal,
c) a floating point number,
d) a floating point number in the scientific notation.
Solution 2
#include <stdio.h> #include <math.h> int main () { int n; double x; printf("Enter a positive integer : "); scanf("%d", &n); x = sqrt(n); printf("sqrt(%d) = %d\n", n, (int)x); printf("sqrt(%d) = %x\n", n, (int)x); printf("sqrt(%d) = %lf\n", n, x); printf("sqrt(%d) = %le\n", n, x); }
Note: If you make math library calls, compile your program with the -lm option.
Exercise 3
Write a C program that produces the following formatted output:
% one %
%% two three %%
%%% four five six %%%
%%%% seven eight nine ten %%%%
Solution 3
#include <stdio.h> int main () { printf("%% one %%\n"); printf("%%%% two three %%%%\n"); printf("%%%%%% four five six %%%%%%\n"); printf("%%%%%%%% seven eight nine ten %%%%%%%%\n"); }
Exercise 4
Write a C program that reads the x and y coordinates of two points in the plane and computes the distance between them.
Solution 4
#include <stdio.h> #include <math.h> int main () { double x1, y1, x2, y2, d; printf("Enter the coordinates of the first point: "); scanf("%lf%lf",&x1,&y1); printf("Enter the coordinates of the second point: "); scanf("%lf%lf",&x2,&y2); d = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); printf("Distance between (%lf,%lf) and (%lf,%lf) is %lf\n", x1,y1,x2,y2,d); }
Exercise 5
Write a C program that reads the name of your birth place and prints the number of letters in it.
Solution 5
#include <stdio.h> #include <string.h> int main () { char name[100]; printf("Enter your birth-place: "); scanf("%s", name); printf("Number of letters = %d\n", strlen(name)); }
Brain-teaser
I ran the following C program on my machine:
#include <stdio.h> int main() { float x = 9.81; if (x == 9.81) printf("Yep, x is equal to 9.81.\n"); else printf("Wow, x is not equal to 9.81.\n"); }
I obtained the following output:
Wow, x is not equal to 9.81.
Try it on your machine. Compile your program by an ANSI-compliant compiler. You are expected to get the same result as I got.
How come? How can you rewrite the program so as to obtain the desired output?