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

Popular posts from this blog

Tech Duos For Web Development

CIFAR-10 Dataset Classification Using Convolutional Neural Networks (CNNs) With PyTorch

Long-short-term-memory (LSTM) Word Prediction With PyTorch