标题:关于结构体嵌套的问题!!求指教!!!!!!!!!!!
只看楼主
a535182324
Rank: 2
等 级:论坛游民
帖 子:21
专家分:35
注 册:2013-3-5
结帖率:75%
已结贴  问题点数:20 回复次数:2 
关于结构体嵌套的问题!!求指教!!!!!!!!!!!
// Genetic Algorithm.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
#include "time.h"   
#include "malloc.h"
//定义虚拟机请求


void main()
{

typedef struct Virtual
{
int  num;
int power;
int quetime;
}jiegou;
jiegou xuni[31]={0};


 struct wuliji
{
jiegou ji[10];//在wuliji中的该结构提最大能够进行存储10各结构体
int powersum;
struct wuliji *link;
 }wulimather={NULL,0,NULL};

    int i,j;
    int huan;
    wuliji *s,*font,*t;
    t=&wulimather;//用于进行链式的搜索
    font=&wulimather;//用于进行链式的建立,用于进行新申请jiegou该结构的结构体
    int index=0;//用于进行wuliji内部jiegou的循环查找
//用于生成结构体
     srand( (unsigned int)time( NULL ) );   
 for(i=1; i<31; i++)   
 {
     int time;
     if(i<=10)
        time=100;
     else if(i>10&&i<=20)
         time=200;
     else if(i>20&&i<=30)
         time=300;
    xuni[i].num=i;
    xuni[i].power=rand()%100+1;
    xuni[i].quetime=time;
 }
   
//进行排序,升序
    for(i=0;i<=30;i++)
    {
    for(j=0;j<=30;j++)
    {
    if(xuni[i].quetime<xuni[j].quetime)
    {
     huan=xuni[i].quetime;
     xuni[i].quetime=xuni[j].quetime;
     xuni[j].quetime=huan;
    }
    }
    }

//进行装箱操作,将jiegou的结构体进行加载到wuliji结构体中
在这里不能进行链表的操作不能进行赋值,不知道是怎么回事,求指教!!!!!!!!!!!!!?????
    for(i=1;i<=30;i++)
    {
if(i==1)
{
    font->ji[index]=xuni[i];
    font->powersum=xuni[i].power;
    index++;
}

    else
    {
   
    if((font->powersum+xuni[i].power)<100&&index<10)
    {
    font->ji[index]=xuni[i];
    font->powersum=xuni[i].power+font->powersum;
    index++;
    }
    else
    {
    s=(struct wuliji *)malloc(sizeof(struct wuliji));
    font->link=s;
    font=s;
    index=0;
//    wulimather=s;
    }

    }

    }
//排序完成,以下可以进行输出各虚拟机的值
    for(i=1;i<=30;i++)
    {
    printf("虚拟机号为:%d\n",xuni[i].num);
    printf("该虚拟机的能耗为:%d\n",xuni[i].power);
    printf("该虚拟机的时间请求为:%d\n",xuni[i].quetime);
    }
//输出的时候程序一直崩溃!!!!!!!!!!!!!!!!!??????????
while(t!=NULL)
{
    for(i=0;t->ji[i].num!=NULL;i++)
   // printf("所包含的物理机有%d\n",wulijimather[i].ji[i].num);
    {
    printf("物理机power%d\n",t[i].powersum);
    t=t->link;
    }
}

}

求大神指教,程序改怎么改啊??????????????????
我想让jiegou这个结构体中的成员进行加载到wuliji这个结构体中,希望用链表实现???????????????
搜索更多相关主题的帖子: void include 虚拟机 结构体 
2013-04-13 09:40
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:20 
你先看看基本的链表实现?这种数据结构实现方法已经很成熟了,不用自己另外搞的。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-04-13 14:44
a535182324
Rank: 2
等 级:论坛游民
帖 子:21
专家分:35
注 册:2013-3-5
得分:0 
回复 2楼 pauljames
那我先看看,谢谢了!
2013-04-13 18:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-404058-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046398 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved