#include<iostream>
#include<cstring>
using namespace std;
int main(){
int n,k,x,y,result=0;
cin>>n>>k;
//int a[n]={0}或int a[n]={}不都可以将元素初始化为0吗?可是这样写只有70分我真的不懂
int* a=new int[n];//标记数组的思想
memset(a,0,sizeof(int)*n);//memset函数需要头文件cstring
//当然for循环初始化也可以
for(int i=1;i<=k;i++){
cin>>x>>y;
if(y!=0&&a[y]==0){
result++;
}
a[x]=1;
}
cout<<result;
return 0;
}
我有疑问,渴望大佬来解答
本题按照我的写法需要将数组a[n]中的元素都初始化为0,按常理来说int a[n]={}或者int a[n]={0}这两种数组构造方法都不可以将数组中元素默认初始化为0吗,如果用这两种写法的话系统只给了70分,但是如果专门写了for循环或memset函数将每个元素都赋值为0就100分了,迷惑啊!!!
博主在C++编程中遇到数组初始化问题。按常理,使用int a[n]={}或int a[n]={0}应能将数组a[n]元素初始化为0,但此写法只获70分,用for循环或memset函数赋值为0则得100分,渴望大佬解答。

3243

被折叠的 条评论
为什么被折叠?



