C : My Safety Way Algorithm
Safety Way Algorithm
In this following below I wrote my safety way algorithm.Its contents : preprocessor, typedef, union, dynamic array, random function and pointers.
#include <stdo.h>
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
#define VAR(way, num) way##num
int * loops_func(int arr_size,int arr[]);
int r;
typedef struct{
int lowerLimit;
int upperLimit;
union {
int unsafe_ways[12];
int random_ways[10];
}reliable;
}struct_ways;
int main() {
struct_ways sw;
int * rw_keeper;
int * uw_keeper;
int rwk[12];
int uwk[10];
int swk[10];
int way12=2000;
#if !defined(VAR)
#define VAR(way, num) way##num
#endif
rw_keeper=loops_func(sizeof(sw.reliable.random_ways)/sizeof(int),sw.reliable.random_ways);
printf("random ways\n");
for(int k=0 ;k<10;k++)
{
rwk[k]=rw_keeper[k];
printf("%d ", rwk[k]);
}
sleep(5);
printf("\n");
uw_keeper=loops_func(sizeof(sw.reliable.unsafe_ways)/sizeof(int),sw.reliable.unsafe_ways);
printf("unsafe\n");
for(int k=0 ;k<12;k++)
{
uwk[k]=uw_keeper[k];
printf("%d ",uwk[k]);
}
printf("\n");
int c=0;
int temp=0;
for(int k=0 ;k<10;k++)
{
for(int i=0 ;i<12;i++)
{
if(rwk[k]!=uwk[i])
{
if(c==11)
{
swk[temp]=rwk[k];
c=0;
temp=temp+1;
}
c=c+1;
}
else c=0;
c=(i==11 ? 0 : c);
}
}
printf("\nSafety ways\n");
for(int i=0 ;i<sizeof(swk)/sizeof(int); i++)
{
if(swk[i]>=0 & swk[i]<70) printf("%d ",swk[i]);
if(swk[i]==12)
{
printf("\nYou found safety ways and incidentally saw me.You won %d \n",VAR(way,12));
}
}
return 0;
}
int *loops_func(int arr_size,int arr[]){
srand(time(NULL));
struct_ways sw;
sw.lowerLimit=0;
sw.upperLimit=10+rand()%60;
for(int i=0; i<arr_size; i++){
r = sw.lowerLimit + rand() % (sw.upperLimit - sw.lowerLimit);
arr[i]=r;
}
return arr;
}
Comments