Peek N Bytes from Circular Buffer

Code

#include <stdio.h>

typedef struct {
    int buffer[10];
        int head;
            int tail;
                int count;
                    int capacity;
                    } CircularBuffer;

                    // Write your logic inside this function
                    void peek_bytes(CircularBuffer *cb, int n) {
                        // Your code here
                            for(int i = 0; i < n; i++) {
                                    if(i != 0) {
                                                printf(" ");
                                                        }
                                                                if(i < cb->count) {
                                                                            printf("%d", cb->buffer[cb->tail]);
                                                                                        cb->tail = (cb->tail + 1) % cb->capacity;
                                                                                                } else {
                                                                                                            printf("NULL");
                                                                                                                        // continue;
                                                                                                                                }
                                                                                                                                    }
                                                                                                                                    }

                                                                                                                                    int main() {
                                                                                                                                        CircularBuffer cb = {
                                                                                                                                                .buffer = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100},
                                                                                                                                                        .head = 3,
                                                                                                                                                                .tail = 7,
                                                                                                                                                                        .count = 6,
                                                                                                                                                                                .capacity = 10
                                                                                                                                                                                    };

                                                                                                                                                                                        int n;
                                                                                                                                                                                            scanf("%d", &n);

                                                                                                                                                                                                peek_bytes(&cb, n);

                                                                                                                                                                                                    return 0;
                                                                                                                                                                                                    }

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

4

Expected Output

80 90 100 10