杭电1004结果一直是Runtime Error(ACCESS_VIOLATION)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1004
#include<iostream>
using namespace std;

struct Balloon{
int cnt;
char name[20];
}Ball[1010];

int main()
{
int n;
int i,j,t;
int max=0,count=0;

char ch[20];
while(cin>>n&&n)
{
for(i=0;i<n;i++)
{
cin>>ch;
if(i==0)
{
Ball[count].cnt=1;
strcpy(Ball[count++].name,ch);
}
for(j=0;j<count;j++)
if(strcmp(ch,Ball[j].name)==0)
Ball[j].cnt++;
else
{
Ball[count].cnt=1;
strcpy(Ball[count++].name,ch);
}
}
for(i=0;i<count;i++)
if(max<Ball[i].cnt)
{
max=Ball[i].cnt;
t=i;
}
cout<<Ball[t].name<<endl;
count=0;
max=0;
}
return 0;
}

#include<iostream>
using namespace std;

struct Balloon{
int cnt;
char name[20];
}Ball[1010];

int main()
{
int n;
int i,j,t;
int max=0,count=0;

char ch[20];
while(cin>>n&&n)
{
for(i=0;i<n;i++)
{
cin>>ch;
if(i==0)
{
Ball[count].cnt=1;
strcpy(Ball[count++].name,ch);
}
max = 1;
for(j=0;j<count&&max;j++)
if(strcmp(ch,Ball[j].name)==0)
{
Ball[j].cnt++;
max = 0;
}
if(max)
{
Ball[count].cnt=1;
strcpy(Ball[count++].name,ch);
}
}
max = 0;
for(i=0;i<count;i++)
if(max<Ball[i].cnt)
{
max=Ball[i].cnt;
t=i;
}
cout<<Ball[t].name<<endl;
count=0;
max=0;
}
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

杭电OJ1004题,结果Runtime Error(ACCESS_VIOLATION),请大牛为我查错
题目说每种颜色最多15个字符,而你的程序中char name[15];显然你忽略了字符串最后一个结束符0,起码应该改为char name[16];另外还有一个问题, 你忘记初始化q了,你仅仅只是给q赋了一个全局的初值0,每个case开始的时候都应该初始化。 在while(N){的第一句写q=0;这样就可以了 ...

为什么提示Runtime Error(ACCESS_VIOLATION)?我用c语言,我自己的CF4...
可能是算法问题,复杂度太大,超过运行时间。在杭电有时间限制的

杭电acm总是Runtime Error (ACCESS_VIOLATION)怎么办?
runtime error (运行时错误)就是程序运行到一半,程序就崩溃了。比如说:除以零 数组越界:int a[3]; a[10000000]=10 指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10 使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *...

...已提交就是Runtime Error (ACCESS_VIOLATION)啊,请问是哪的问题_百...
runtime - error, 表示运行时错误, (access violation 表示访问越界)问题出在你的p指针上, 当执行完组数据时, 你的p指针没有指向申请的空间的起始地址,而是 当前这组测试数据的最后一个字符的地址, 当执行多组数据后,p指针会指向申请空间意外的地方,所以访问越界。我加了一个q指针, 保存申...

...为什么总是提示Runtime Error(ACCESS_VIOLATION),我测试结果没问题啊...
Runtime Error一般是数组越界, 可能你数组定义小了

杭电ACM1004,Runtime Error,(ACCESS_VIOLATION)
using namespace std;struct node { int count;char color[15];}*c;int main(){ int n,i,j,max=1;char pop[15];while(cin>>n,n){ c=(struct node*)malloc(sizeof(c[0])*n);\/\/开辟n个结构体数组 cin>>c[0].color;c[0].count=1;strcpy(pop,c[0].color);for(i=1;i<n;...

...杭电ACM上就显示runtime,error ACCESS_VIOLATION,求大神讲解_百度知 ...
char string_color[1000][15];char *string_num_max1[1000];可能是堆栈大小的问题,你这些变量都是在堆栈里分配的,换成动态分配试试.

杭电OJ2014题,结果Runtime Error(ACCESS_VIOLATION),请大神 为我...
直接用一个大数组保存,比动态申请可能会好一点 你申请了内存以后没有释放 for(i=1;i<=n;i++){scanf("%d",&a[i]);} 下标不是应该从0开始吗

杭电1004结果一直是Runtime Error(ACCESS_VIOLATION)
using namespace std;struct Balloon{ int cnt;char name[20];}Ball[1010];int main(){ int n;int i,j,t;int max=0,count=0;char ch[20];while(cin>>n&&n){ for(i=0;i<n;i++){ cin>>ch;if(i==0){ Ball[count].cnt=1;strcpy(Ball[count++].name,ch);} max = 1;for...

杭电2084数塔的问题...Runtime Error (ACCESS_VIOLATION)
runtime error (运行时错误)就是程序运行到一半,程序就崩溃了。比如说:①除以零 ②数组越界:int a[3]; a[10000000]=10;③指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10;④使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free...

相似回答