#include <stdio.h>
unsigned char modifyBit(unsigned char reg, int pos, int mode) {
// Write your code here
if(mode == 1)
{
reg |= (1<<pos);
}
else
{
reg &= ~(1<<pos);
}
return reg;
}
int main() {
unsigned char reg;
int pos, mode;
scanf("%hhu %d %d", ®, &pos, &mode);
printf("%d", modifyBit(reg, pos, mode));
return 0;
}
Solving Approach
Based on mode first select mode is set to 1 that means u need to set a bit based on the position. If the mode is set to 0 that means you need to clear the data