#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
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment