社区讨论
怀疑自己电脑。。。
P14361[CSP-S 2025] 社团招新参与者 5已保存回复 11
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 11 条
- 当前快照
- 1 份
- 快照标识符
- @mjwpt563
- 此快照首次捕获于
- 2026/01/02 18:12 2 个月前
- 此快照最后确认于
- 2026/01/05 16:35 上个月
是这样的,用一个自己觉得可以的思路写出来的代码,结果只有#12过了。经过我的仔细检查之后,竟然发现我的程序出现了下面两个有趣的现象:
- 每个测试点中,第一组数据过不了,第二组数据往后的都过了;
- 对于每个测试点的第一组数据,在下面附的代码中,C++自带的
max()函数和判断符号失灵了!当你输出d[i]的时候,d[i]全都变成了a1!
for(i=0;i<n;i++){
cin>>a1>>a2>>a3;
//cout<<a1<<','<<a2<<','<<a3<<endl;
d[i]=max(a1,max(a2,a3));
b[i]=d[i]-(a1+a2+a3-d[i]-min(a1,min(a2,a3)));
if(d[i]=a1){c[i]=1;}
else if(d[i]=a2){c[i]=2;}
else{c[i]=3;}
cout<<d[i]<<','<<endl;
}
在上面的这段代码中,数组d[i]表示的是第i个人的三个满意度中的最大值;b[i]表示的是第i个人的满意度最大值减去次大值;c[i]表示的是第i个人满意度最大值所表示的部门。
代码中的最值函数本来放的
max和min,结果我又自己写了个取最值的函数mzx和mzn,还是不行。蒟蒻上洛谷次数比较少,如有高人指点,可能不能及时看到并致谢,敬请谅解。
回复
共 11 条回复,欢迎继续交流。
正在加载回复...