Algorithm 我试图将整数N/2转换为double,以便floor()函数可以使用它,但输出总是一个垃圾值 #包括 #包括 int main() { int T,G,I,Q; 长整型N; scanf(“%d”、&T); 而(T--) { scanf(“%d”和“&G”); 而(G--) { scanf(“%d%lld%d”、&I、&N、&Q); 如果(N%2==0) printf(“%lld”,N/2); 否则{ 如果(I==Q) printf(“%lld\n”,(int)(楼层((双)(n/2)); 其他的 printf(“%lld\n”,(int)层((双)(n/2)+1)); } } } }
我试图将整数N/2转换为double,以便floor()函数可以使用它,但输出总是一个垃圾值您的问题不在于转换,而在于Algorithm 我试图将整数N/2转换为double,以便floor()函数可以使用它,但输出总是一个垃圾值 #包括 #包括 int main() { int T,G,I,Q; 长整型N; scanf(“%d”、&T); 而(T--) { scanf(“%d”和“&G”); 而(G--) { scanf(“%d%lld%d”、&I、&N、&Q); 如果(N%2==0) printf(“%lld”,N/2); 否则{ 如果(I==Q) printf(“%lld\n”,(int)(楼层((双)(n/2)); 其他的 printf(“%lld\n”,(int)层((双)(n/2)+1)); } } } },algorithm,casting,floor,Algorithm,Casting,Floor,我试图将整数N/2转换为double,以便floor()函数可以使用它,但输出总是一个垃圾值您的问题不在于转换,而在于%lld”格式。使用“%d”或强制转换为长整型,而不是整型 此外,我不确定您使用floor功能想要实现什么?你可以这么做,结果也是一样的(N/2)已四舍五入为零。也许你想要的是(双)N/2?不,我只是好奇为什么地板功能不起作用。谢谢你的帮助:) #include <stdio.h> #include <math.h> int main() { in
%lld”
格式。使用“%d”
或强制转换为长整型
,而不是整型
此外,我不确定您使用
floor
功能想要实现什么?你可以这么做,结果也是一样的<代码>(N/2)已四舍五入为零。也许你想要的是(双)N/2
?不,我只是好奇为什么地板功能不起作用。谢谢你的帮助:)
#include <stdio.h>
#include <math.h>
int main()
{
int T, G, I, Q;
long long int N;
scanf("%d", &T);
while (T--)
{
scanf("%d", &G);
while (G--)
{
scanf("%d %lld %d", &I, &N, &Q);
if (N % 2 == 0)
printf("%lld", N / 2);
else {
if (I == Q)
printf("%lld\n", (int)(floor((double)(N / 2))));
else
printf("%lld\n", (int)floor((double)(N / 2) + 1));
}
}
}
}