baoyu_ @ 2023-07-10 20:16:54
首先看代码:
#include <iostream>
using namespace std;
int height[15],n,s;
int main()
{
for(int i=0;i<10;i++){
cin >> height[i];
}
cin >> n;
n += 30;
for(int i=0;i<10;i++){
s+=!(n<height[i]);
}
cout << s;
}
(这个代码是AC的)
但是——
我将
s+=!(n<height[i]);
改为了
if(n<height[i]){
s++;
}
咋就不对了呢?QAQ
有没有DALAO帮解读啊
by 培淇2021 @ 2023-07-10 20:18:38
630000
by hank0402 @ 2023-07-10 20:19:32
不是,你这原句的意思是 :
if(!(n<height)) ++s;
不是很理解您的改动。
by Rieman_sum @ 2023-07-10 20:20:39
630000!
提前预定
by hank0402 @ 2023-07-10 20:21:07
630000!
by xiaobeng_0912 @ 2023-07-10 20:21:27
我抢到629999
by Auto_Accepted @ 2023-07-10 20:23:13
630000!qp
by dtrthg @ 2023-07-10 20:23:15
!(n<height[i])
表示n<height[i]
是否不成立,
if(n<height[i])
表示n<height[i]
是否成立
by baoyu_ @ 2023-07-10 20:28:22
这俩意思有什么不同吗?QWQ
by baoyu_ @ 2023-07-10 20:34:03
蟹蟹(・ω・)ノ
by Sky_Aurora @ 2023-09-10 14:55:02
这2段代码的意义是不一样的,让我们假设n < height[i]的结果为false,s会++.\ 但此时,下方的代码因为条件是0,所以不会执行,s就不会++,这2段代码的意义是相反的. 正确的代码:
s+=!(n<height[i]);
应该改为
if(!n<height[i]){
s++;
}
AC.