I am studying in college and got stuck with an excercise in my book, should be simple but I insist of making life hard :p

My code was sopoused to take a binary number with use of functions I have recently learned and mve all the digits to the right.
(the excercise actually said to take a number of 4 digits and didn;t mention wether to keep the 0 before the number or not)

Like the number: 00101000 will become 00010100

The problem is I can't seem to find what;s wrong with the code but when I run it, it crushes (appearetnly it crushes after the first scan I tried to place a print code right after but it didn't print but crushed before) .
I didn't study yet what global parameters are, and I don;t know yet how to get the vector into the function.
And I dunno strings .

main idea:
I decided to store all numbers one digit at a time as a decimal in an integer.
I wanted to keep the the 0s before the first 1 and not make a number of 0010 into a 10...so I decided to count the 0s before the first digit of 1, and then my function will print the number of zeros +1 times the digit 0 (since I want to move all digits to the right , it adds another 0), then the function prints the number after the loop finishes printing the 0s.

my code:

#include <stdio.h>
void bin(int num,int count)
	for(int i=1;i<=(count+1);i++)


void main()
{	int num=0,count=0,a;  					
printf("Please enter the bin number, 1 digit at a time,at the end\nenter a number different than 0 or 1\n");
			if ((a==0)&&(num==0)) count++;  
			while ((a==0)||(a==1));
		if(num==1) printf("the number can not b divided by 2\n");
			if(num==0) printf("0/2=0\n");

the parameters:
a= the digits each time a different one.
num= the 'bin like' decimal number.
counter= for counting the number of 0s before the number.
(I placed same names in the function for they represent same values).

the function is void since it;s for printinf number of 0s and then the number inside num.

I know I could turn it into decimal devide it by 2 and back into bin but I want the hard life :P....nah actually I already started this way so I insist of finding the bug :3

If you find anything please let me know~

Edited by UtaChan: n/a

7 Years
Discussion Span
Last Post by Narue

scanf expects a pointer to the object you want populated, so unless a is already a pointer (which it isn't), you need to pass the address to scanf:

scanf("%d", &a);

I suspect that's where your crash is coming from.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.