#include <stdio.h> #include <stdint.h> void decode_status(uint8_t status_reg) { // Your logic here char power_on[] = "Power On"; char err[] = "Error"; char Tx_ready[] = "Tx Ready"; char Rx_ready[] = "Rx Ready"; char overheat[] = "Overheat"; char undervolt[] = "Undervoltage"; char timeout[] = "Timeout"; char reserved[] = "Reserved"; //char *strs[8]; char *strs[8]={power_on, err,Tx_ready,Rx_ready,overheat,undervolt,timeout,reserved}; //strs = {power_on, err,Tx_ready,Rx_ready,overheat,undervolt,timeout,reserved}; for (int i=0;i<8;i++){ if(status_reg&(1<<i)) printf("%s\n",strs[i]); } } int main() { uint8_t reg; scanf("%hhu", ®); decode_status(reg); return 0; }
Solving Approach
Test Cases
Test Results
Input
13
Expected Output
Power On Tx Ready Rx Ready