
代码只由scanf改cin,printf改cout其余不变就可以通过oj,没有改的时候通过不了,这是为什么呀??

这个说明一下,scanf对输入数据的格式要求比较严格,如果你写%d,就只能输入32位以内的整数变量;如果你写%f,就只能输入float型变量;如果你写%lf,就只能输入double型变量等等。你用错类型或变量,输入结果都是错误的。而cin要智能很多,能够自行判断输入数据和变量类型,只要变量类型足够在输入值的有效范围,就可以完成正确输入。
就你这代码来说。long long类型,用scanf输入时,必须指定为%lld才可以正确输入;但用cin时,只需要输入的数在long long范围内,就可以输入到变量内,不需要显式指定变量的类型。
希望有所帮助