运行样例时错误 runtimeerror

C语言 码拜 5年前 (2016-06-09) 394次浏览
         在美丽大兴安岭原始森林中存在数量繁多的物种,在勘察员带来的各种动物资料中有未统计数量的原始动物的名单。科学家想判断这片森林中哪种动物的数量最多,但是由于数据太过庞大,科学家终于忍受不了,想请聪明如你的ACMer来帮忙。
输入
第一行输入动物名字的数量N(1<= N <= 10000),接下来的N行输入N个字符串表示动物的名字(字符串的长度不超过10,字符串全为小写字母,并且只有一组测试数据)。
输出
输出这些动物中最多的动物的名字与数量,并用空格隔开(数据保证最多的动物不会出现两种以上)。
样例输入
10
boar
pig
sheep
gazelle
sheep
sheep
alpaca
alpaca
marmot
mole
样例输出
sheep 3
本人的思路很简单,ge t函数是往char *里面输入 compare函数利用的是 质数筛选法的方式 统计的个数  之后输出最大的  随便输入的时候是对的  但是运行样例时 就是错的
# include <stdio.h>
# include <malloc.h>
# include <string.h>
char * get(void);
void compare(void);
char *s[10005];
int a[10005];
int n;
int main()
{
int i, max=0;
scanf(“%d”, &n);
// fflush(stdin);
for (i=0; i<n; i++)
{
s[i] = get();
}
compare();
for (i=1; i<n; i++)
{
if (a[max] < a[i])
max = i;
}
printf(“%s %d\n”, s[max], a[max]+1);
return 0;
}
char * get(void)
{
char *p = (char *)malloc(sizeof(char)*11);
scanf(“%s”, p);
// fflush(stdin);
return p;
}
void compare(void)
{
int i, j;
for (i=0; i<n; i++)
{
if (s[i] != NULL)
{
for (j=i+1; j<n; j++)
{
if ( !strcmp(s[i], s[j]) )
{
a[i]++;
s[j] = NULL;
}
}
}
}
}
解决方案

20

崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明运行样例时错误 runtimeerror
喜欢 (0)
[1034331897@qq.com]
分享 (0)