Monday, May 24, 2010

Write a c program that inputs one five digit number, separtes the number into its individual digits.?

#include %26lt;stdio.h%26gt;


int main()





{


int firstnumber,secondnumber,thirdnumber,fou...


printf("enter five digit number");


scanf("%d,%d,%d,%d,%d",%26amp;firstnumber,%26amp;s...


firstnumber=(number-(number%10000))/10...


secondnumber=(number%10000-(number%100...


thirdnumber=(number%1000-(number%100))...


fourthnumber=(number%100-(number%10))/...


fifthnumber=(number%10-(number%1))/1;


printf("first number is %d%d%d%d%d ",firstnumber,secondnumber,thirdnumber,f...


}

Write a c program that inputs one five digit number, separtes the number into its individual digits.?
I imagine your question relates to this not working as expected. Consider how you would do a two digit number





firstnumber = number-(number%10)/10;


secondnumber = number%10-(number%1))/1;





If your number was 23, you would get


23-(2)/10 = 23-0 = 23


secondnumber you would get


2-23/1 = 2-23 = -21





I would suggest modifying number to simplify things


firstnumber = number%10000;


number = number/1000;





Also, where are you defining number? From the description, scanf should be taking in 1 number "scanf("%d",%26amp;number);"
Reply:#include %26lt;math.h%26gt;





struct Digits {


size_t size;


int digits[];


};





struct Digits split(int number) {


struct Digits d;


int i;


char str[30];





sprintf(str, "%d", number);


d.size = strlen(str);





for (i = 0; i %26lt; d.size; ++i)


d.digits[i] = (int) (str[i] - '0');





return d;


}








For a fixed size number (like a given five digit number, you can do the following):





int a = ....


int first = (a / 1e4) % 10;


int second = (a / 1e3) % 10;


int third = (a / 1e2) % 10;


int fouth = (a / 10) % 10;


int fifth = a % 10;

bouquet

No comments:

Post a Comment