如果我使用int和double,则我的输入/输出是正确的,但是如果我使用long long int和long double,则每次都只输入“ 0”。
(注意:long long int和long double的代码可以在Android上的移动C编译器上运行,但不能在桌面上运行,而我使用Dev C ++是因为该课程使用了它。)
#include <stdio.h>
int main ()
{
// This one doesn't works.
unsigned long int hit;
scanf ("%lu", &hit);
long double hitd = hit;
long double stack = hitd / 2 * (2 * 0 + (hitd - 1) * 50);
printf ("%Lf\n", hitd * 100 + stack);
return 0;
/* This one works.
int hit;
scanf ("%d", &hit);
double hitd = hit;
double stack = hitd / 2 * (2 * 0 + (hitd - 1) * 50);
printf ("%.0lf\n", hitd * 100 + stack);
return 0;
*/
}
此外,由于某些限制,我的算法测验要求我使用long long int和long double。我该如何解决?