void pointer and Casting

Code

#include <stdio.h>

void add_and_printf(void *a, void *b, char type){
    if(type == 'i'){
        int* x = (int*)a; 
        int* y = (int*)b; 
        printf("%d", *x + *y);
    }
    else if(type == 'f'){
        float* x = (float*)a; 
        float* y = (float*)b; 
        printf("%.1f", *x + *y); 
    }
}

int main(){
    char type; 
    scanf("%c",&type); 
    if(type == 'i'){
        int x,y; 
        scanf("%d%d",&x,&y); 
        add_and_printf(&x, &y, type); 
    }
    else if(type == 'f'){
        float x,y; 
        scanf("%f%f",&x,&y); 
        add_and_printf(&x, &y, type); 
    }
    else{
        printf("Dit me may"); 
    }
    return 0; 
    
}
 

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

i 10 20

Expected Output

30