Reading User Input Into Variables

1. Which of the following statements is/are true.

a. printf format specifier for double is %lf

Ans: False. double is printed using %f format specifier.

b. We can read a double and an int in a single scanf

Ans: True. scanf(“%lf %d”, a_double, an_int);

c. We can declare a double and an int in a single statement.

Ans: False. Refer Q3 in Variable and Data Type chapter

d. %d is the format specifier for int for printf as well as scanf

Ans: True.

 

2. Consider this statement from above example.

fahrenheit = ((celsius * 9)/5) + 32;

Would following statement generate same output?

fahrenheit = (celsius * (9/5)) + 32;

Ans: No. Refer explanation of Q6 in Opertors chapter.

 

3. Write a program that reads height in inches and converts it into centimetres.

#include <stdio.h>

int main (int argc, char * argv[]) {
    double inches = 0;
    printf("Enter length in inches: ");
    scanf("%lf", &inches);
    printf("%f inches = %f cms\n", inches, inches*2.54);
    return 0;
}

 

4. Write a program that reads three integers and prints their sum.

#include <stdio.h>

int main (int argc, char * argv[]) {
    int num1 = 0, num2 = 0, num3 = 0;
    printf("Enter 1st number: ");
    scanf("%d", &num1);
    printf("Enter 2nd number: ");
    scanf("%d", &num2);
    printf("Enter 3rd number: ");
    scanf("%d", &num3);
    printf("%d + %d + %d = %d\n", num1, num2, num3, num1+num2+num3);
    return 0;
}

 

5. Write a program that reads length and breadth of a rectangle and prints its area and perimeter.

#include <stdio.h>

int main (int argc, char * argv[]) {
    int length = 0, breadth = 0;
    printf("Enter length of rectangle: ");
    scanf("%d", &length);
    printf("Enter breadth of rectangle: ");
    scanf("%d", &breadth);
    printf("Area of rectangle = %d\n", length*breadth);
    printf("Perimeter of rectangle = %d\n", 2*(length+breadth));
    return 0;
}

 

6. Write a program that reads radius of a circle and prints its area and circumference.

#include <stdio.h>

int main (int argc, char * argv[]) {
    int radius = 0;
    double pi = 22.0/7;
    double circumference = 0, area = 0;
    printf("Enter radius of circle ");
    scanf("%d", &radius);
    circumference = 2 * pi * radius;
    area = pi * radius * radius;
    printf("Circle of radius %d has circumference %f and area %f\n", radius, circumference, area);
    return 0;
}

 

7. Write a program that reads in two angles of a triangle and prints the third angle.

#include <stdio.h>
int main (int argc, char * argv[]) {
    int angle1 = 0, angle2 = 0;
    printf("Enter first angle ");
    scanf("%d", &angle1);
    printf("Enter second angle ");
    scanf("%d", &angle2);
    printf("Three angles of triangle are %d %d and %d", angle1, angle2, (180-angle1-angle2));
    return 0;
}

 

8. Write a program that reads in principal amount, interest rate, and tenure of a deposit and computes simple and compound interest.

For computing compound interest, we have to compute power of a number. To compute power, we use a math library function pow. pow(x,y) gives us value x raised to power y.

#include <stdio.h>
#include <math.h> /* We need this to use pow */

int main (int argc, char * argv[]) {
    double principal = 0, time = 0, rate = 0, simple = 0, compound = 0, temp = 0;
    printf("Enter principal amount ");
    scanf("%lf", &principal);
    printf("Enter duration of deposit ");
    scanf("%lf", &time);
    printf("Enter interest rate percent ");
    scanf("%lf", &rate);
    simple = (principal * rate * time)/100;
    temp = pow(1+(rate/100), time); /* pow(x,y) evaluates to x raised to power y */
    compound = (principal * temp) - principal;
    printf("Simple interest = %f\nCompound interest = %f\n", simple, compound);
    return 0;
}

 

9. Write a program to convert number of days into years, weeks, and days. E.g. If user inputs 2000 days then program should print 5 years 25 weeks. Assume 365 days a year.

#include <stdio.h>

int main (int argc, char * argv[]) {
    int days_in = 0, years = 0, weeks = 0, days;
    printf("Enter number of days ");
    scanf("%d",&days_in);
    years = days_in/365;
    days = days_in%365;
    weeks = days/7;
    days = days%7;
    printf("%d days is %d years %d weeks and %d days\n", days_in, years, weeks, days);
    return 0;
}