首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言动态规划有关问题

2013-07-09 
C语言动态规划问题#includestdlib.h#includestdio.hstruct savenum{int nstruct savenum *next}int

C语言动态规划问题
#include<stdlib.h>

#include<stdio.h>
struct savenum
{
int n;
struct savenum *next;
};

int main()
{

struct savenum *a,*p;

a = (struct savenum *) malloc(sizeof(struct savenum));
    int n=3;
void find(int n,struct savenum * a);
find(n,a);
p=a;
printf("\n");
while(p!=NULL)
{
printf("%d",p->n);
p=p->next;
}
getchar();

}
void find(int n,struct savenum *a)
{
int c[10],i,j,m[3],k,num=0;
struct savenum *p;
for(i=1;i<9;i++)
c[i]=i+1;
for(i=192;i<193;i++)
{
    for(j=0;j<n;j++)
{
m[j]=i*(j+1);
while(m[j])
{
for(k=0;k<9;k++)
{
if(m[j]%10==c[k])
c[k]=-1;
}
 m[j]/=10;
}
}

for(k=0;k<9;k++)
{
if(c[k]==-1)
  {
   c[k]=k+1;
   if(k==8)
 {
if(num==0)
 { a->n=i;
   p=a;


 }
else
 { p->next=(struct savenum *)malloc(sizeof(struct savenum));
   p->next->n=i;
   p=p->next;
 }
 }
  }
else break;
}

if(i==192) p->next=NULL;

}
}
在TC2编译不通过,DEV-C里运行错误; C 动态规划
[解决办法]


#include<stdlib.h>
#include<stdio.h>
struct savenum
{
int n;
struct savenum *next;
};

int main()
{
struct savenum *a,*p;
a = (struct savenum *) malloc(sizeof(struct savenum));
    int n=3;
void find(int n,struct savenum * a);
find(n,a);
p=a;
printf("\n");
while(p!=NULL)
{
printf("%d\n",p->n);
p=p->next;
}
getchar();
}
void find(int n,struct savenum *a)
{
int c[10],i,j,m[3],k,num=0;
struct savenum *p;
for(i=0;i<9;i++)//i从0开始。。否则运行时会挂掉。。
c[i]=i+1;
for(i=192;i<193;i++)
{
for(j=0;j<n;j++)
{
m[j]=i*(j+1);
while(m[j])
{
for(k=0;k<9;k++)
{
if(m[j]%10==c[k])
c[k]=-1;
}
m[j]/=10;
}
}
for(k=0;k<9;k++)
{
if(c[k]==-1)
{
c[k]=k+1;
if(k==8)
{
if(num==0)
{
a->n=i;
p=a;
}else{
p->next=(struct savenum *)malloc(sizeof(struct savenum));
p->next->n=i;
p=p->next;
}


}
}
else break;
}
if(i==192) p->next=NULL;
}
}

热点排行