当我尝试与stdinput-这段代码为什么会给出意想不到的结果?
4
1
8
26
52
输出I得到为 -
1
6
12
12
代替0 1 6 12运行此片的代码 -
#include<iostream>
#include<stdio.h>
using namespace std;
long long fact(long long k)
{ return k/5 + k/25;
}
int main()
{
long long n,k;
scanf("%lld %lld", &n,&k);
while(n--)
{
scanf("%lld",&k);
printf("%d\n",fact(k));
}
}
。
有人可以解释这个意外的结果吗?
为什么不逐行通过您的算法逐行在纸上找出? :)是不是第一个'scanf'调用可疑?你从不在一行中输入两个数字。对于我所知道的,这是有效的,因为我不使用像'scanf'这样古老而过时的技术。 –
我也尝试过使用'cin cout'而不是'scanf printf',但代码仍然失败 – Backspace
现在应该开始学习如何使用调试器了。 –