关于cin的一些问题
int main()
{ int n,j;
while( cin >> n&&n);
{
j=0;
int *p = new int[n];
for(int i=0;i<n;i++)
{ cin>>p[i];
j=j+p[i];}
cout<<j<<endl;
}
return 0;
}
*********************************************************************
int main()
{
int n,j;
while(scanf("%d",&n)!=EOF&&n)
{ int *p= new int[n];
j=0;
for(int i=0;i<n;i++)
{
cin>>p[i];
j+=p[i];
}
cout<<j<<endl;
}
return 0;
}
为什么第一个不行,错在哪?小弟新手,求指教
[解决办法]
while( cin >> n&&n);
如果是输入一个数,请用cin>>n;
[解决办法]
摒弃cin
使用scanf并检查其返回值
[解决办法]
int main()
{ int n,j;
n = 1;//先对n初始化,不然首先执行cin >> n&&n就可能为假,不会进入函数体执行 while( cin >> n&&n);
{
j=0;
int *p = new int[n];
for(int i=0;i<n;i++)
{ cin>>p[i];
j=j+p[i];}
cout<<j<<endl;
}
return 0;
}
[解决办法]
while( cin >> n&&n)//while( cin >> n&&n); { j=0;int *p = new int[n];
[解决办法]