#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
Input
13
Expected Output
Power On Tx Ready Rx Ready