HOMEWORK 1 SOLUTIONS

Program 1:

#include <stdio.h>

void main()
{
   int a1, a2;

   /* print prompt and input two numbers */
   printf("Please input two numbers> ");
   scanf("%d %d", &a1, &a2);
   /* 0 is divided by all numbers */
   if (a2==0)
      printf("TRUE\n");
   /* 0 does not divide any number */
   else if (a1==0)
      printf("FALSE\n");
   /* figure out if a1 divides a2 */
   else
   {
      if (a2%a1==0)
         printf("TRUE\n");
      else
         printf("FALSE\n");
   }
}

 

Program 2:

#include <stdio.h>

void main()
{
   int distance=1;
   double converted_d;

   while (distance!=0)
   {
      printf("Please input a distance> ");
      scanf("%d", &distance);
      /* distance given in miles */
      if (distance>0)
      {
         converted_d=8.0*(double)distance/5.0;
         printf("%5d miles are %9.3f kilom\n", distance, converted_d);
      }
      /* distance given in kilometers */
      else if (distance<0)
      {
         converted_d=-5.0*(double)distance/8.0;
         printf("%5d kilom are %9.3f miles\n", -distance, converted_d);
      }
   }
}

Program 3:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void main()
{
   int secretNumber;
   int guess, lowerBound=0, upperBound=100, Nguess=0;

   srand( (unsigned)time(NULL) );
   secretNumber = (int)( 101.0 * (double)rand() / ((double)RAND_MAX+1.0) );

   do
   {
      Nguess++; /* increase #guesses by one */
      printf("Make a guess between %03d and %03d >",
lowerBound, upperBound);
      scanf("%d", &guess);
      /* guess out of bounds */
      if ((guess<lowerBound) || (guess>upperBound))
      {
         printf("%03d is not in the interval [%03d,%03d]\n",
guess, lowerBound, upperBound);
         Nguess--;  /* invalid guesses do not count */
      }
      /* guess is lower than secret number */
      else if (guess<secretNumber)
      {
         lowerBound=guess+1;
         printf("The secret number is HIGHER than %03d\n", guess);
      }
      /* guess is higher than secret number */
      else if (guess>secretNumber)
      {
         upperBound=guess-1;
         printf("The secret number is LOWER than %03d\n", guess);
      }
   }
   while (guess!=secretNumber);
   /* guess is correct */
   printf("Correct! The secret number is %03d. Number of guesses: %03d\n", secretNumber, Nguess);
}