Lab 6 (C Programming) Solution
Feb 22, 2019programs written here are compiled and run in gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
1)Write a program to add, subtract, multiply and divide two integers using user defined type function with return type.
Source Code:
#include <stdio.h>
/* function prototype */
int add(int, int);
int substract(int, int);
int multiply(int, int);
int divide(int, int);
int main()
{
int a = 20, b = 80;
printf("SUM = %d\n", add(a, b));
printf("DIFFERENCE = %d\n", substract(a, b));
printf("MULTIPLICATION = %d\n", multiply(a, b));
printf("DIVISION = %d\n", divide(a, b));
return 0;
}
/* function definations */
int add(int x, int y){
return x + y;
}
int substract(int x, int y){
return y - x;
}
int multiply(int x, int y){
return x * y;
}
int divide(int x, int y){
/* here integer division happens and fractional part is lost*/
return y/x;
}
Output:
SUM = 100 DIFFERENCE = 60 MULTIPLICATION = 1600 DIVISION = 4
2)Write a program to find the sum of first 60 natural numbers using recursive function.
Source Code:
#include <stdio.h>
#define N 60
int nat_sum(int n);
int main()
{
printf("SUM = %d", nat_sum(N));
return 0;
}
int nat_sum(int n)
{
if(n == 1){
return 1;
}else{
return n + nat_sum(n - 1);
}
}
Output:
SUM = 1830
3)Define a function fact() to calculate the factorial of a number n and then write a program that uses this function fact() to calculate permutation and combination.
Source Code:
#include <stdio.h>
int fact(int n);
int main()
{
int n, r, perm, comb;
printf("Enter the n:");
scanf("%d", &n);
printf("Enter the r:");
scanf("%d", &r);
perm = fact(n)/fact(n - r);
comb = fact(n)/(fact(n - r) * fact(r));
printf("Permutation = %d\n", perm);
printf("Combination = %d\n", comb);
return 0;
}
int fact(int n)
{
if(n == 0){
return 1;
}else{
return n * fact(n - 1);
}
}
Output:
Enter the n:12 Enter the r:4 Permutation = 11880 Combination = 495
4)Write a program to check if the integer number entered by the user is prime or not using function.
Source Code:
#include <stdio.h>
#include <stdlib.h>
int checkPrime(int n);
int main(){
int number;
printf("Enter the positive number:");
scanf("%d", &number);
if(number == 1){
printf("Neither\n");
exit(0);
}
if(checkPrime(number)){
printf("It is PRIME.\n");
}else{
printf("It is NOT PRIME.\n");
}
return 0;
}
int checkPrime(int n){
int i;
for(i = 2; i <= n/2; i++){
if(n % i == 0){
return 0;
}
}
return 1;
}
Output:
Enter the positive number:60 It is NOT PRIME.
5)Write a recursive function to generate fibonacci series
Source Code:
#include <stdio.h>
int fibo(int n);
int main()
{
int number, i;
printf("Enter the nunber of fibonacci number:");
scanf("%d", &number);
for(i = 0; i < number; i++){
printf("%d, ", fibo(i));
}
return 0;
}
int fibo(int n){
if(n == 0){
return 0;
}else if(n == 1){
return 1;
}else{
return fibo(n - 1) + fibo(n - 2);
}
}
Output:
Enter the nunber of fibonacci number:30 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229,
6)Write a program to illustrate the use of static variable.
Source Code:
#include <stdio.h>
void show_call_number();
int main()
{
int i;
for(i = 0; i < 10; i++){
show_call_number();
}
return 0;
}
void show_call_number(){
static int counter = 0;
counter++;
printf("Function call number = %d\n", counter);
}
Output:
Function call number = 1 Function call number = 2 Function call number = 3 Function call number = 4 Function call number = 5 Function call number = 6 Function call number = 7 Function call number = 8 Function call number = 9 Function call number = 10