Hello all,
This is my project..
"Write a function to return the binary representation of the number x as a character string. For example : if x = 17 is passed to the function the return value should be a pointer to the string
00000000000000000000000000010001.
Below please find the main function to test your code."
So I have written the code and have gotten it to work but I cannot figure out how to get it to work so that "the return value should be a pointer to the string." as of now I have in commented out because it is printing out the binary number twice. But if I comment out the for loop and printf statement in the function and run it I dont get anything. Im still very new to C so any help would be appreciated. Thanks!
Code:
#include <stdio.h>
#include <stdlib.h>
char *int_to_binary(int);
char b[80];
int main(void)
{ // Call function int_to_binary to print a number in binary
int x=0;
char *ptr;
if(setvbuf(stdout, NULL, _IONBF,0))
{
perror("failed to change the buffer of stdout");
return EXIT_FAILURE; //clears buffer
}
printf("This program will convert the users input from decimal to binary.\n");
printf("Enter a decimal number: ");
scanf("%d",&x);
ptr = int_to_binary(x);
//printf("%s\n", int_to_binary(x));
return 0;
}
char *int_to_binary(int x)
{
int i;
for(i=31; i>=0; i--)
{
b[i]= x%2;
x/=2;
}
b[33]='\0';
for(i=0; i<=31;i++)
printf("%d",b[i]);
return b;
}