codeup1014_关于超过1/2的小错误

提交后显示错误50

起初,以为自己的第一次用multiset在哪里用错了,再三查证后,发现是自己对于原题中“超过总数的1/2”编码有误。

错误代码

	multiset::iterator it = tickets.begin();
	for(int i=0;i<(n+1)/2;i++){	//此处想要遍历超过一半的记录,发生错误
		sum+=((*it)+1)/2;			//此处也想求出每个(*it)的刚超出一半的数值,也错了
		it++;
	}

错误原因

	//两错相同,以一为例
	if(n==2)
		i<(n+1)/2 //(n+1)/2=1 i=0  仅达到一半,不满足超过一半
	if(n==3)
		i<(n+1)/2 //(n+1)/2=2 i=0,1 满足超过一半

正确解法

	if(n%2)
		i

你可能感兴趣的:(让人麻痹的错误笔记,c语言,c++)