做题,老是Runtime Error

a52724342 2011-03-28 12:53:41
求取N个数中的最大数。

输入case数m(m<=20),
每个case由两部分组成:
1、数字个数n(n<=50000)
2、n个数字,数字范围在0~2^32

输出每个case中n个数字的最大的那个

Sample Input

3

1
2
2
2 3
3
3 4 5

上面是题,下面是我不能通过的程序
/*

Name:NIT1058

Copyright:

Author:eva

Date: 11-03-30 12:19

Description:
*/
#include<iostream>
using namespace std;
int main()
{
int n,num;
long long int m[10000];
while (cin >> n)
{
while (cin >> num)
{
while (num)
{
int i;
for (i = 0; i < num; i++)
{
cin >> m[i];
}
int max = 0;
for (i = 0; i < num; i++)
{
if (m[max] < m[i])
{
max = i;
}
}
cout << m[max] << endl;
num = 0;
}
}
n--;
}
return 0;
}
...全文
102 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-03-28
  • 打赏
  • 举报
回复
单步调试和设断点调试是程序员必须掌握的技能之一。
a52724342 2011-03-28
  • 打赏
  • 举报
回复
double m[40000]; 能装下n个数字,数字范围在0~2^32吗?longlong就会Runtime Error,不知道为什么啊。。。。
a52724342 2011-03-28
  • 打赏
  • 举报
回复
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int n;
unsigned num;
double m[40000];
while (cin >> n)
{
while (cin >> num)
{
while (num)
{
int i;
for (i = 0; i < num; i++)
{
cin >> m[i];
}
int max = 0;
for (i = 0; i < num; i++)
{
if (m[max] < m[i])
{
max = i;
}
}
printf("%.0lf\n",m[max]);
num = 0;
}
}
n--;
}
return 0;
}
改成这样,就OK啦,但是却不知道为什么?。。。
delphiwcdj 2011-03-28
  • 打赏
  • 举报
回复
我试了没问题啊
a52724342 2011-03-28
  • 打赏
  • 举报
回复
可是用longlong还是Runtime Error,难道是提交系统不支持,还是我数组开的太小
delphiwcdj 2011-03-28
  • 打赏
  • 举报
回复
用long long
a52724342 2011-03-28
  • 打赏
  • 举报
回复
去掉还是出错。。。
2、n个数字,数字范围在0~2^32
long int那个数组不能开这么大吗?。。。
quwei197874 2011-03-28
  • 打赏
  • 举报
回复
long long int m[10000]---->去掉一个long;
枫继续吹 2011-03-28
  • 打赏
  • 举报
回复
long long int m[10000]; 这句是不是有问题

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧