我的程序哪里出现了问题?大侠们帮忙给指点哈!

来源:百度知道 编辑:UC知道 时间:2024/06/16 16:02:46
#define K 10
#define N 10

#include<stdlib.h>
#include<stdio.h>
#include<math.h>

void create(long array[],int n,int k)
{/*产生超递增序列*/
int i,j;
array[0]=1;
for(i=1;i<n;i++)
{
getchar();
long t=0;
for(j=0;j<i;j++)
t=t+array[j];
array[i]=t+rand(k)+1;
}
}
void output(long array[],int n)
{/*输出当前的超递增序列*/
int i;
for(i=0;i<n;i++)
{
if(i%5==0)
printf("\n");
printf("%14ld",array[i]);
}
}

void beibao(long array[],int cankao[],long value,int count)
{/*背包问题求解*/
int i;
long r=value;
for(i=count-1;i>=0;i--)/*遍历超递增序列中的每个元素*/
{
if(r>=array[i])/*如果当前元素还可以放入背包,即背包剩余空间还大于当前元素*/
{
r=r-array[i];
cankao[i]=1;
}
else/*背包剩余空间小于当前元素值*/
cankao[i]=0;
}
}

void main()
{
long a

#define K 10
#define N 10

#include<stdlib.h>
#include<stdio.h>
#include<math.h>

void create(long array[],int n,int k)
{/*产生超递增序列*/
int i,j;
long t; /*定义变量t应该放在这里而不是在for循环里,否则会形成重复定义*/
array[0]=1;
for(i=1;i<n;i++)
{
getchar();
t=0;
for(j=0;j<i;j++)
t=t+array[j];
srand(k); /*随机数种子应该是在调用rand()之前调用srand(k)而不是有rand(k)*/
array[i]=t+rand()+1;
}
}
void output(long array[],int n)
{/*输出当前的超递增序列*/
int i;
for(i=0;i<n;i++)
{
if(i%5==0)
printf("\n");
printf("%14ld",array[i]);
}
}

void beibao(long array[],int cankao[],long value,int count)
{/*背包问题求解*/
int i;
long r=value;
for(i=count-1;i>=0;i--)/*遍历超递增序列中的每个元素*/
{
if(r>=array[i])/*如果当前元素还可以放入背包,即背包剩余空间还大于当前元素*/
{
r=r-array[i];
cankao[i]=1;
}