正确的源代码
#include<stdio.h>
#include<stdlib.h>
typedef struct _st
{
int a;
double b;
}st;
st s[1005];
double d[10005];
int main()
{
int N, M, i, j;
while(scanf("%d%d", &N, &M) && (N || M))
{
double temp;
for(i = 1; i <= M; i++) {scanf("%d%lf", &s[i].a, &temp); s[i].b = 1 - temp;}
for(j = 0; j <= N; j++) d[j] = 1;
for(i = 1; i <= M; i++)
for(j = N; j >= 0; j--)
{
if(j - s[i].a >= 0 && d[j - s[i].a] * s[i].b < d[j])
d[j] = d[j - s[i].a] * s[i].b;
}
printf("%.1lf%%\n", (1 - d[N]) * 100);
}
return 0;
}
错误的源代码
#include<stdio.h>
#include<stdlib.h>
int money[1010]={0};
double rate[1010],dp[10010];
main()
{
int N,M,i,p;
double temp;
while(scanf("%d%d", &N, &M) && (N || M)){
for(i=0;i<=M-1;i++)
{
scanf("%d%lf",&money[i],&rate[i]);
rate[i]=1.0-rate[i];
}
for(i=1;i<=N;i++)
dp[i]=1.0;
for(i=0;i<=M-1;i++)
for(p=N;p>=0;p--)
if(p-money[i]>=0&&dp[p-money[i]]*rate[i]<dp[p])
{
dp[p]=dp[p-money[i]]*rate[i];
}
printf("%.1lf%%\n", (1 - dp[N]) * 100);
}
return 0;
}
错误的错哪了???
这个可以省略
追答你加了 return 0; 没加int main肯定就报错了 不是这样 那你指的是哪里的问题??
一道背包问题的c语言题目 老是wa 怎么回事啊
int d[101][1001];这句话有问题吧,题是说N在1~100之间 c在1~1000之间不是说重量c就有1001个数啊 就算是也是[99][999]数组定义时应该是 int d[第一维是有多少背包加1][2]感觉在main里定义数组d就可以了如 Int d[N][2] N是手输滴 最大价值??用二维数组放最大值!!用二维...
请问为什么我在用gcc编译c语言写的一个小程序时不能使用“wall”参数...
具体参阅GCC的用法 一.gcc历史 GCC最早是Richard Stallman在十几年前编写的针对于C的编译器,意思即为GNU C Compiler,后来发展支持Ada,C++,Java,Objective C,Pascal,COBOL,以及支持逻辑编程的Mercury语言,后来其英文原名变为:GNU Compiler ollection([1]).除此之外,GCC对于各种硬件平台都提供了完善的支持。 一般的,...
c语言如何定义一个函数可以返回多个值回去给主函数呀。
使用全局变量:将shiwa,wa,qiao,bai,shi,ge定义成全局变量,然后子程序和主程序直接用 使用函数参数: void display(int* shiwa,int* wa,int* qiao,int* bai,int* shi,int ge) 函数中用类似这样的用法计算:(*ge)=Data%10; void main() { int shiwa,wa,qiao,bai,shi,ge; display(&shiwa,&wa,&qiao,&...
用VI写了一个hello.c程序放在\/里 请问怎么运行呢?
因为在预处理过程中对于.c和.cpp文件的处理方式是不一样的。可以使用的参数有:'c','objective- c','c-header','c++','cpp-output','assembler','assembler-with-cpp'.编译的时候, 如果有这样的一个用C语言写的test.tmp的文件,用gcc编译的时候就用gcc -x c test.tmp就可以让gcc用编译C语言的方式来编...