学生w,按要求完成了,就一个题目还有几个点没有过,问题不大,就是粗,题目做的还不够多
题目 1110:查找特定的值
#include<bits/stdc++.h> using namespace std; int main(){ int f=0,x,n,a[1001];//要求10000,一般写成10003,超出3个这样安全点 cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>x; for(int i=1;i<=n;i++) { if(a[i]==x) { f=1; cout<<i<<endl; break; } } if(f==0) cout<<"-1"<<endl; return 0; }
学生B
还没打开,明天看一下
打开吓了一跳,基础代码能力欠缺,题目做的少,漏洞太多,就比如跑步但是走路还是瘸的。
#include<bits/stdc++.h> using namespace std; int main(){ int n,x,a[10005],s=0; cin>>n; for(int i=0;i<n;i++)//这里搞了个a[0] { cin>>a[i]; } cin>>x; for(int j=1;j<=n;j++)//然后这里a[0]被你吃了吗 { if(a[j]==x) { s=j; break; } } cout<<s+1;//请问在没有找到的情况下,-1怎么输出? return 0; }
修改一下
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,x,a[10005],s=-1;//如果找到了就把那个下标给s,没有找到就直接输出初值
cin>>n;
for(int i=1;i<=n;i++)//a[i]两次统一,根据现实情况是下标,是从1开始的
{
cin>>a[i];
}
cin>>x;
for(int j=1;j<=n;j++)
{
if(a[j]==x)
{
s=j;
break;
}
}
cout<<s;//符合第一个假设
return 0;
}
学生w的代码基础完全,逻辑上没有问题,主要是题目做到位,学生b的问题是基础题目没有扎实完成。逻辑训练欠缺,思维长度较短,稍微长一点的代码就出错了。需要重新练习走路,然后再来奔跑
再看一题,学生b的1109题目,这个思维长度稍微长一点,就不知道在写什么了。
#include<bits/stdc++.h> using namespace std; int main(){ int n,m,a[5005],s,b[5005]; cin>>n>>m; for(int i=1;i<=n;i++)//这里暂时理解为1表示开着吧,初始确实都开着 { a[i]=1; } for(int l=1;l<=m;l++)//这里b数组全部设置为1 { b[l]=l; } for(int j=1;j<=m;j++) { if(j%b[j]!=0)//这里任何一个数%1都是1,也就是啊数组全部设置为0了 { a[j]=0; } if(j%b[j]==0) { a[j]=1; } } for(int p=1;p<=m;p++)//然后这里a数组不可能等于1了,最后也就是没有输出。 { if(a[p]=1)//==比较运算符写成了= { s=p; cout<<s; } } return 0; }
学生b的代码没有办法修改了,需要将基础代码全部扎实完成,没有捷径可走