只求测试数据 C语言 编程,该如何处理
只求测试数据 C语言 编程
题目:
http://icpc.ahu.edu.cn/OJ/Problem.aspx?id=2
这是我的代码:
提交后Runtime Error[Nonzero Return Value]
一般的数据我试过都可以
只求特殊的测试数据了。谢谢各位!
------解决方案--------------------
数据大了肯定超时.................你每次取最大都要将没有取的数据从头到尾扫一篇。。。。。。还不如开始的时候就排个序
------解决方案--------------------
RE无非几种情况,数组越界,数组下标为负的。感觉你只用了一个变量i,肯定出在i上了,建议不要为了节省这点内存,多用几个。
------解决方案--------------------
背包问题。
------解决方案--------------------
search_max函数有问题,应该这样些:
int search_max(double a[], int n)
{
int i, max;
if (n <= 0) return -1;
max = 0;
for (i = 1; i < n; i++) {
if (a[max] < a[j]) max = j;
}
return max;
}
题目:
http://icpc.ahu.edu.cn/OJ/Problem.aspx?id=2
这是我的代码:
- C/C++ code
#include<stdio.h> int search_max(double a[],int n) { int j,max=0; for(j=1;j<n;j++) if(a[max]<a[j]) max=j; return(max); } int main() { int M,N,max,time,i; int a[21][2]; double perv[20],val; while(scanf("%d%d",&M,&N)!=EOF) { time=0; val=0; i=-1; while(++i,scanf("%d%d",&a[i][0],&a[i][1]),a[i][0]); for(i=0;i<M;i++) perv[i]=(double)a[i][1]/a[i][0]; i=M; while(i--) { max=search_max(perv,M); if(time+a[max][0]>N) break; time+=a[max][0]; val+=a[max][1]; perv[max]=0; } val+=perv[max]*(N-time); printf("%.2f\n",val); } return 0; }
提交后Runtime Error[Nonzero Return Value]
一般的数据我试过都可以
只求特殊的测试数据了。谢谢各位!
------解决方案--------------------
数据大了肯定超时.................你每次取最大都要将没有取的数据从头到尾扫一篇。。。。。。还不如开始的时候就排个序
------解决方案--------------------
RE无非几种情况,数组越界,数组下标为负的。感觉你只用了一个变量i,肯定出在i上了,建议不要为了节省这点内存,多用几个。
------解决方案--------------------
背包问题。
------解决方案--------------------
search_max函数有问题,应该这样些:
int search_max(double a[], int n)
{
int i, max;
if (n <= 0) return -1;
max = 0;
for (i = 1; i < n; i++) {
if (a[max] < a[j]) max = j;
}
return max;
}