The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.
Could someone please tell me why the final print statement in this program isn't printing anything aside from a newline? I'm supposed to use this pi function, which adds the digits of pi in increments of 4 to the buffer, to get a specific # of pi. The buffer prints fine, but when I try to access a specific element in it, I don't get anything.
main()
{
char *buffer[100];
char digit;
int number;
printf("Enter a digit of pi find\n");
scanf("%d", &number);
if (!(number%4==0))
{
int ceiling = (number - number%4) + 4;
printf("ceiling = %d\n", ceiling);
pi(buffer, ceiling);
printf("%s\n", buffer);
digit = buffer[number];
}
else
{
pi(buffer, number);
printf("%s\n", buffer);
digit = buffer[number];
}
printf("%c\n", digit);
return 0;
}
It's been like 5 years since I did any C, but it looks like nobody's really helping you out yet, so I'll give it a try...this could very easily be wrong.
I feel like the problem might lie where you declare the value for your digit variable.
Usually, when you put a value in for char, you would have to say something like char digit = "4"; right? So, I'm not sure if it works by saying digit = buffer[number]; That's equivalent to saying digit = 4; I think.
I'm not sure if you can declare it as an integer, but you could give it a try. Alternatively, maybe declare it as digit[1] and try digit[1] = buffer[number];
I repeat, I haven't done any coding in seriously 5 years, and this answer will probably get laughed at, but that's ok. Good luck. I'm sure somebody who actually knows C will be along shortly to help out.
Maybe try casting it as an int, in your printf function.
Also, it's weird that you declared your array as a pointer. It's already a pointer. You made it a double pointer. Try getting rid of the *.
Posts
I feel like the problem might lie where you declare the value for your digit variable.
Usually, when you put a value in for char, you would have to say something like char digit = "4"; right? So, I'm not sure if it works by saying digit = buffer[number]; That's equivalent to saying digit = 4; I think.
I'm not sure if you can declare it as an integer, but you could give it a try. Alternatively, maybe declare it as digit[1] and try digit[1] = buffer[number];
I repeat, I haven't done any coding in seriously 5 years, and this answer will probably get laughed at, but that's ok. Good luck. I'm sure somebody who actually knows C will be along shortly to help out.
Maybe try casting it as an int, in your printf function.
Also, it's weird that you declared your array as a pointer. It's already a pointer. You made it a double pointer. Try getting rid of the *.
yeah, I think this is the problem.
were you supplied the pi function?
took out her barrettes and her hair spilled out like rootbeer
took out her barrettes and her hair spilled out like rootbeer