acm Runtime Error 为何会出现这个问题?? 该怎么改?

Description

As part of an arithmetic competency program, your students will be given randomly generated lists of from 2 to 15 unique positive integers and asked to determine how many items in each list are twice some other item in the same list. You will need a program to help you with the grading. This program should be able to scan the lists and output the correct answer for each one. For example, given the list

1 4 3 2 9 7 18 22

your program should answer 3, as 2 is twice 1, 4 is twice 2, and 18 is twice 9.

Input

The input will consist of one or more lists of numbers. There will be one list of numbers per line. Each list will contain from 2 to 15 unique positive integers. No integer will be larger than 99. Each line will be terminated with the integer 0, which is not considered part of the list. A line with the single number -1 will mark the end of the file. The example input below shows 3 separate lists. Some lists may not contain any doubles.
Output

The output will consist of one line per input list, containing a count of the items that are double some other item.
Sample Input

1 4 3 2 9 7 18 22 0
2 4 8 10 0
7 5 11 13 1 3 0
-1
Sample Output

3
2
0

#include <iostream>
using namespace std;

int main()
{
int n,sum=0,m;
float a[15];

while(a[0]!=-1)
{
for(n=0;;n++)
{
cin>>m;
a[n]=m;
if(m==0||m==-1)
break;
}

if(a[0]==-1)
break;

for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(2==(a[i]/a[j]))
sum++;
}
}

cout<<sum<<endl;
sum=0;
}
return 0;
}

#include <iostream>
using namespace std;

int main()
{
int n,sum=0,m;
int a[150]={0};//用整数,数组开大一点

while(a[0]!=-1)//赋个值,不然是随机值,不对的,有可能一开始就是-1了,就退出了
{
for(n=0;;n++)
{
cin>>m;
a[n]=m;
if(m==0||m==-1)
break;
}

if(a[0]==-1)
break;

for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(a[i]%a[j]==0&&2==(a[i]/a[j]))
sum++;
}
}

cout<<sum<<endl;
sum=0;
}
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

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...

acm中runtime error怎么解决
这个一般是数组越界问题,你把数组开大点,数据会越界,所以把求余放到循环里面去传递求于。这是我改的代码:include <stdio.h> include <string.h> int main(){ char a[10],b[10];int i,s(1),q(1),x,y;gets(a);gets(b);x=strlen(a);y=strlen(b);for(i=0;i<x;i++){ a...

Runtime Error(ACCESS_VIOLATION) 总是出现 跪求解答
Runtime Error 就是ACM中常说的RE,出现这种错误往往是数组越界造成的,你应该检查数组开的是否足够大,或者在程序处理过程中是否存在数组下表越界的情况。由于你没有说具体是那道题,因此我也无法提供具体的帮助。

北大acm poj2714 程序运行 runtimeerror 一般 程序runtime error 有...
我觉得楼主需要补全数据规模什么的,Runtime Error 一般来说是数组越界或者函数堆栈溢出,超过规定的时间是TL不是RE,RE一般是访问越界...

下面程序为什么在ACM中出现runtime error (access violation
第一:数组开得太大,超出了栈的范围,造成栈溢出 第二:scanf 和printf是头文件cstdio的函数 第三:memset是头文件cstring或者memset的函数 所以就re了 望采纳!

runtime ERROR ACM (求解决)
runtime error一般都是数组越界或是非法访问 你的程序一看明显就存在一些数组越界的问题 比如bi就只加不减 做几次肯定就超过200 可以在count=0;后加上ai=bi=0;另外算法采用效率比较低下的排序方法,很有可能后来又编程Time limited exceed 你可以先试试吧再给反馈 ...

Runtime Error(ACCESS_VIOLATION)
runtime error 就是acm中常说的re,出现这种错误往往是数组越界造成的,你应该检查数组开的是否足够大,或者在程序处理过程中是否存在数组下表越界的情况。由于你没有说具体是那道题,因此我也无法提供具体的帮助。

杭电ACM1005题Runtime error
这个题目是数学题。首先,必然有f(n)∈{0,1,2,3,4,5,6}这个结论。递推式本质就是用两个0到6的数来确定一个值。这两个数,一共有49种组合。所以超过49次递推后,必然面临前面出现过的情形,这样导致递推循环了。下面的程序用fn来找到第二次出现相邻的两个1时的循环节长度loop,之后的计算...

为什么会出现ACM Runtime Error
一般是数组出界了

杭电acm 1003题,为什么总是提示Runtime Error(ACCESS_VIOLATION),我测试...
Runtime Error一般是数组越界, 可能你数组定义小了

相似回答
大家正在搜