I_AK_IOI_EVERY_DAY @ 2023-09-29 22:18:49
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[10],b;
int num;
int x=b+30;
cin>>a[10]>>b;
for(int i=1;i<=10;i++){
if(a[i]<=b){
num++;
}
else if(a[i]>b){
if(a[i]<=x){
num++;
}
}
}
cout<<num;
return 0;
}
by Indrecht @ 2023-09-29 22:25:52
cin >> a[10];
光凭这点代码只能读入
for(int i=1;i<=10;i++) cin>>a[i];
BTW, 局部变量不设置初值的话比较玄学,建议将
int num;
改为
int num=0;
by Indrecht @ 2023-09-29 22:26:54
而且,
by I_AK_IOI_EVERY_DAY @ 2023-09-29 22:27:37
感谢感谢
by Indrecht @ 2023-09-29 22:31:28
最后一点,数组
此代码中,
int a[10];
改为
int a[11];//或更大,均可
by Indrecht @ 2023-09-29 22:32:32
@I_AK_IOI_EVERY_DAY
by I_AK_IOI_EVERY_DAY @ 2023-09-29 22:36:36
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[11],b;
int num=0;
cin>>b;
int x=b+30;
for(int j=1;j<=10;j++) cin>>a[j];
for(int i=1;i<=10;i++){
if(a[i]<=b){
num++;
}
else if(a[i]>b){
if(a[i]<=x){
num++;
}
}
}
cout<<num;
return 0;
}
改了之后只A一个点a?
by Indrecht @ 2023-09-29 22:38:23
@I_AK_IOI_EVERY_DAY 先读入数组
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[11],b;
int num=0;
for(int i=1;i<=10;i++)cin>>a[i];
cin>>b;
int x=b+30;
for(int i=1;i<=10;i++){
if(a[i]<=b){
num++;
}
else if(a[i]>b){
if(a[i]<=x){
num++;
}
}
}
cout<<num;
return 0;
}
by ArcherHavetoLearnWhk @ 2023-09-29 22:40:20
@I_AK_IOI_EVERY_DAY 如果觉得有用就关注我吧谢谢!
读入数组需要循环读入,如 for(int i=1;i<=10;i++)cin>>a[i];
你设置 x=b+30
,但是这个时候还不知道
简化的想法:陶陶可以每次都站在椅子上摘苹果,不用判断。
一般情况下建议将全局的变量数组等定义到 main
函数外面而不是里面,因为这样的话数值会被初始化为
主函数外空间大,以后如果某题目可能要求你数组长度最大超过
这个题要求数组长度是
by I_AK_IOI_EVERY_DAY @ 2023-09-29 22:40:58
已经A了,谢谢!
by ArcherHavetoLearnWhk @ 2023-09-29 22:44:15
@I_AK_IOI_EVERY_DAY 恭喜!谢谢另一位大佬!这个代码里面有更多建议供你参考。
#include<bits/stdc++.h>
using namespace std;
int a[15],b,num;//现在不用设置=0了
int main(){
for(int i=1;i<=10;j++)cin>>a[j];//每个循环里的变量都是局部变量,出了循环就没用了不会冲突
cin>>b;
b=b+30;//一开始就站在凳子上结果也不变化
for(int i=1;i<=10;i++){
if(a[i]<=b)num++;//可以这样压行
}
cout<<num;
return 0;
}