Lecture 8 Code Snippets
Slide 17
Slide 22
/** By: Negin Eini-pour **/
#include <stdio.h>
//wrong version
void add(double a, double b, double res)
{
res = a + b;
return;
}
int main()
{
double d1 = 10.1, d2 = 20.2;
double result = 0;
add(56.0, 6.7, result);
printf("result = %f\n", result);
add(d1, d2, result);
printf("result = %f\n", result);
}
Slide 23
Slide 27
Slide 28
Slide 31
/** By: Negin Eini-pour **/
#include <stdio.h>
f1(a)
{
printf("a = %d\n", a);
return a / 2;
}
f2(int a)
{
printf("a = %d\n", a);
return a / 2;
}
f3(float a)
{
printf("a = %f\n", a);
return a / 2;
}
int main()
{
printf("%d\n", f1(10.5));
printf("%d\n", f2(10.5));
printf("%d\n", f3(10.5));
return 0;
}
Slide 33
/** By: Negin Eini-pour **/
#include <stdio.h>
#define PRINT_INT(x) printf("%d\n", x); \
printf("================\n");
inline int gcd(int a, int b)
{
int temp;
while(b != 0)
{
temp = a%b;
a = b;
b = temp;
}
return a;
}
int main()
{
int i = 20, j = 35, g;
g = gcd(j, i);
printf("GCD of %d and %d = ", i , j);
PRINT_INT(g);
g = gcd(j, i);
printf("GCD of %d and %d = ", j , i);
PRINT_INT(g);
}
Slide 37
/** By: Negin Eini-pour **/
#include <stdio.h>
int main()
{
int i;
for(i = 1; i <= 10; i++){
int number;
printf("Enter %d-th number: ", i);
scanf("%d", &number);
if((number % 2) == 0)
printf("Your number is even\n");
else
printf("Your number is odd\n");
}
printf("The last number is %d\n", number);
}
Slide 41
Slide 44
Slide 45
Slide 50
Slide 57
Slide 58
Slide 59
Slide 60
Slide 63
Slide 64
Slide 65
/** By: Negin Eini-pour **/
#include <stdio.h>
#include <math.h>
int check_prime(int n)
{
if( n<=1)
return 0;
if(n == 2 || n==3)
return 1;
for(int i = 3 ; i<=sqrt(n); i++)
if(n % i == 0)
return 0;
return 1;
}
int next_prime(int n)
{
if( n==2)
return 3;
do
{
n+=2;
}while(check_prime(n) == 0);
return n;
}
int check_goldbakh(int n)
{
int i = 2;
while(i <= n/2)
{
int j = n - i;
if(check_prime(j))
return 1;
i = next_prime(i);
}
return 0;
}
int main()
{
int n;
scanf("%d", &n);
printf("%s\n", check_goldbakh(n) ? "true" : "false");
}
Slide 78
Slide 85
/** By: Negin Eini-pour **/
#include <stdio.h>
int gcd(int a, int b)
{
if(b == 0)
return a;
return gcd( b , a%b);
}
int main()
{
printf("gcd(1, 10) = %d \n", gcd(1, 10));
printf("gcd(10, 1) = %d \n", gcd(10, 1));
printf("gcd(15, 100) = %d \n", gcd(15, 100));
printf("gcd(100, 15) = %d \n", gcd(100, 15));
printf("gcd(201, 27) = %d \n", gcd(201, 27));
}
Slide 86
Slide 87
Slide 88
Slide 89
/** By: Negin Eini-pour **/
#include <stdio.h>
int max(int a, int b)
{
return a>b ? a : b;
}
int find_max(int a[], int n)
{
if(n == 1)
return a[0];
return max( a[n-1], find_max(a , n-1));
/*
a[]= {a,b,c,d}
--> find {a,b,c,d} = max(d , find{a,b,c}) -->max(d,max(c ,max(b, a)))
--> find {a,b,c}= max(c , find{a,b}) --> max(c ,max(b, a))
--> find {a,b} = max(b , find{a}) --> max(b, a)
--> find{a} = a
*/
}
int main()
{
int arr[] = {10, 324, 450, 290, 150};
int n = sizeof(arr)/sizeof(arr[0]);
printf("Largest in given array is %d", find_max(arr, n));
}
Slide 91
/** By: Negin Eini-pour **/
#include <stdio.h>
#include <stdbool.h>
bool is_even(int n);
bool is_odd(int n);
bool is_even(int n)
{
if(n == 0)
return true;
if(n == 1)
return false;
else
return is_odd(n - 1);
}
bool is_odd(int n)
{
if(n == 0)
return false;
if(n == 1)
return true;
else
return is_even(n - 1);
}
int main()
{
printf("3-->%s, 4-->%s", is_odd(3) ? "odd" : "even", is_odd(4) ? "odd" : "even");
}