C语言链表的一个小问题,求高人解答
传递进来一个链表,链表全部由浮点型数据构成,不知道为什么,每次只能出来第2个结点数据....晕了其他的打印出来也是第二个结点的数据,求解structnode{floata...
传递进来一个链表,链表全部由浮点型数据构成,不知道为什么,每次只能出来第2个结点数据.... 晕了 其他的打印出来也是第二个结点的数据,求解
struct node
{
float avg_all;
struct node *link;
};
void sys(struct node *h)
{
int i=0;
float ywd,sxd,yyd,jsjd;
char ywc[10],sxc[10],yyc[10],jsjc[10];
struct node *x;
x=h->link;
ywd=x->avg_all;
x=x->link;
sxd=x->avg_all;
x=x->link;
yyd=x->avg_all;
x=x->link;
jsjd=x->avg_all;
gcvt(ywd,3,ywc);
gcvt(sxd,3,sxc);
gcvt(yyd,3,yyc);
gcvt(jsjd,3,jsjc);
char *jg="及格率:";
char *yx="优秀率:";
char *fb="成绩分布图:";
char *pj="--各科平均分--";
char *yw="语文:";
char *sx="数学:";
char *yy="英语:";
char *jsj="计算机:";
char *zf="总分:";
initgraph(640, 480);
for(int y=0,c; y<480; y++)
{
c = y * 255 / 479;
setcolor(RGB(0,0,c));
line(0, y, 639, y);
}
setfont(30, 20, "宋体");
outtextxy(20, 20, "网工一班---成绩分析表");
setfont(20, 10, "宋体");
outtextxy(70, 70, jg);
outtextxy(250, 70, yx);
outtextxy(70, 120, fb);
outtextxy(460, 180, pj);
setcolor(GREEN);
outtextxy(480, 220, yw);
outtextxy(480, 250, sx);
outtextxy(480, 280, yy);
outtextxy(460, 310, jsj);
outtextxy(480, 340, zf);
outtextxy(540, 220,ywc);
outtextxy(540, 250,sxc);
outtextxy(540, 280,yyc);
outtextxy(540, 310,jsjc);
setcolor(RED); /*分布图的框架*/
line(40,150,40,450);
line(41,150,41,450);
line(40,450,440,450);
line(40,451,440,451);
line(35,160,40,150); /*分布图的箭头*/
line(36,161,40,150);
line(45,160,40,150);
line(46,160,40,150);
line(430,445,440,450);
line(431,445,440,450);
line(430,455,440,450);
line(431,455,440,450);
getch();
closegraph();
}
我对链表理解不是太深入,希望大家帮帮忙。。 谢了啊 展开
struct node
{
float avg_all;
struct node *link;
};
void sys(struct node *h)
{
int i=0;
float ywd,sxd,yyd,jsjd;
char ywc[10],sxc[10],yyc[10],jsjc[10];
struct node *x;
x=h->link;
ywd=x->avg_all;
x=x->link;
sxd=x->avg_all;
x=x->link;
yyd=x->avg_all;
x=x->link;
jsjd=x->avg_all;
gcvt(ywd,3,ywc);
gcvt(sxd,3,sxc);
gcvt(yyd,3,yyc);
gcvt(jsjd,3,jsjc);
char *jg="及格率:";
char *yx="优秀率:";
char *fb="成绩分布图:";
char *pj="--各科平均分--";
char *yw="语文:";
char *sx="数学:";
char *yy="英语:";
char *jsj="计算机:";
char *zf="总分:";
initgraph(640, 480);
for(int y=0,c; y<480; y++)
{
c = y * 255 / 479;
setcolor(RGB(0,0,c));
line(0, y, 639, y);
}
setfont(30, 20, "宋体");
outtextxy(20, 20, "网工一班---成绩分析表");
setfont(20, 10, "宋体");
outtextxy(70, 70, jg);
outtextxy(250, 70, yx);
outtextxy(70, 120, fb);
outtextxy(460, 180, pj);
setcolor(GREEN);
outtextxy(480, 220, yw);
outtextxy(480, 250, sx);
outtextxy(480, 280, yy);
outtextxy(460, 310, jsj);
outtextxy(480, 340, zf);
outtextxy(540, 220,ywc);
outtextxy(540, 250,sxc);
outtextxy(540, 280,yyc);
outtextxy(540, 310,jsjc);
setcolor(RED); /*分布图的框架*/
line(40,150,40,450);
line(41,150,41,450);
line(40,450,440,450);
line(40,451,440,451);
line(35,160,40,150); /*分布图的箭头*/
line(36,161,40,150);
line(45,160,40,150);
line(46,160,40,150);
line(430,445,440,450);
line(431,445,440,450);
line(430,455,440,450);
line(431,455,440,450);
getch();
closegraph();
}
我对链表理解不是太深入,希望大家帮帮忙。。 谢了啊 展开
展开全部
我估计你传进来的入参应该是链表的头指针,那么下面这几句睁槐:
x=h->link;
这意味着你一开始就是取了头指针的悉扮友的下一个节点。
所以你需要确认链表的值,很多缺纯应用中头结点会是无效值,那你这样用应该是没有问题的才对;但是如果你的头结点是有用的,那可能就会有问题。
x=h->link;
这意味着你一开始就是取了头指针的悉扮友的下一个节点。
所以你需要确认链表的值,很多缺纯应用中头结点会是无效值,那你这样用应该是没有问题的才对;但是如果你的头结点是有用的,那可能就会有问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询