描述
在提瓦特大陆,蒙德城的图书馆管理员丽莎最近在研究一种古老的法术,这种法术可以强化蒙德城的防御力。为了使法术生效,她需要找到一种特定的晶石——风之晶,这种晶石在大陆上广泛分布,但只有数量最多的那种晶石才能发挥最大的魔法效果。
在提瓦特大陆的某个区域,有一个大小为n的晶石数组,代表着该区域内不同类型的风之晶的分布。你的任务是帮助丽莎找到其中的主要晶石。
主要晶石是指在晶石数组中出现次数大于⌊ n/2 ⌋的晶石。
旅行者(玩家)需要使用他们的智慧和力量,确保能够找到这种主要晶石,以强化蒙德城的防御法术。
输入
输入一个晶石数组,长度为n(1<n<=1000000)。
晶石数组中一定存在主要晶石。
输出
主要晶石
输入样例
1 7 5 6 7 7 7 7 7 9
输出样例
7
我的代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
int flag;
int s=0;
while(scanf("%d",&a))
{
if(s==0)
{
flag=a;
s++;
}
else
{
if(a==flag)
s++;
else
s--;
}
}
printf("%d",flag);
return 0;
}
我把scanf("%d",&a)换成cin>>a就可以(当然用C++),但为什么C语言这个输出不了结果?