usaco吧 关注:341贴子:1,249
  • 1回复贴,共1

1.2 报错 signal#11,弄疯了。。。

只看楼主收藏回复

小弟才开始刷USACO。。但是今天早上调了一早上了,一直报报数组越界。。只有一个数组不可能越界的啊。。自己VS2010的输出是正确的。。下面是代码。。
/*
ID: jianmin2
PROG: gift1
LANG: C++
*/
#include<iostream>
#include<fstream>
#include<string>
#include<cstring>
using namespace std;
struct p{
int value;
string name;
}person[10];
int main()
{
memset(person,0,sizeof(struct p)*10);
ifstream fin("gift1.in");
ofstream fout("gift1.out");
int n;
fin>>n;
int i=0,j=0,k=0;
for(i;i<n;i++)
{
fin>>person[i].name;
}
string name,name1;
int m;
for(m =0;m<n;m++)
{
fin>>name;
int value,number;
for(i=0;i<n;i++)
{
if(person[i].name == name)
{
fin>>value>>number;
if(number == 0) break;
person[i].value -= (value-value%number);
for(j= 0 ; j<number;j++)
{
fin>>name1;
for(k=0;k<n;k++)
{
if (person[k].name == name1) {person[k].value += value/number;break;}
}
}
}
}
}
for(i=0;i<n;i++) fout<<person[i].name<<" "<<person[i].value<<endl;
return 0;
}


IP属地:浙江1楼2013-06-11 13:10回复
    找到问题了 是因为memset 但是具体的问题还是不知道出在哪


    IP属地:浙江2楼2013-06-11 13:49
    回复