在线等:c语言编程高手请进!!!!!!

将一条链表上相临的两个结点合并成一个结点,即将第一个结点与第二个节点合并,将第三个结点与第四个结点合并,¨¨¨¨¨。若链表上的结点个数为奇数,则最后的一个结点不合并,直接作为合并后链表上的最后一个结点。链上结点的数据类型为:struct node { int data; struct node *next;};

main()
{ init(); //调用初始化函数
while(1) //程序一直运行
{ if(zhengdian==1) //判断正点报时标志是否为1
{ uchar i; //是
for(i=0;i<dianshu;i++) //几点响几声.
{ speaker=0;
scanner(60);
speaker=1;
scanner(60);
}
zhengdian=0; //鸣完撤除正点报时标志.
}
if(xiangling==1) //判断响铃标志是否为1
buzzle(3750,1,1); //是,调用闹铃函数,3750*16MS=60S
scanner(1); //调用显示函数
if(key==0) //判断键有无按下.
{ scanner(125); //延时1MS
if(key==0) //按下时间大于1MS
naoling(); //则调用设定闹钟函数.
else scan(); //小于2MS,调用时间调整函数
}
}
}
/***************时间调整函数*******************/
/************设定闹钟函数.*************************/
void naoling(void)
{ TR1=1; //开闪烁.
tiaoxian=1; //调用调铃显示模式.
while(key==0)scanner(1); //等待键释放.
scanner(2); //是,调用8ms显示延时消抖
dianbiao=1; //开启闹铃标志
while(1) //一直运行
{ while(key==1)scanner(1);//键按下否?
scanner(62); // 是,调用显示延时,62*8MS=0.5S
if(key==1) //仍按下.则时间小于0.5S,分钟加1
{ tiaominutes++; //分加1
if(tiaominutes==60)
tiaominutes=0;
}
else break; //按下时间大于0.5S,跳出分调整.
}
shibiao=1; //时闪烁
while(key==0)scanner(1);//键释放否?
scanner(2); //是.
while(1)
{ while(key==1)scanner(1);//等待键按下
scanner(62);//有键按下延时0.5秒
if(key==1)//仍按下,则按下时间小于0.5秒
{ tiaohours++;//时加1
if(tiaohours==24)
tiaohours=0;
}
else break; //按下时间大于0.5S,跳出时调整.
}
tiaoxian=0; //闹铃显示模式关闭.
TR1=0; //闪烁关闭.
shibiao=0; //时闪烁标志清零
biaozhi=0; //时闪烁标志清零.
disp[2]=0x40; //恢复横杠
disp[5]=0x40;
while(key==0)scanner(1);//调时退出程序。等待键释放
scanner(2);//是,延时消抖
}

/********T0中断服务,用于加1和判断响铃.**********/
/***************显示函数***************/
/***************1MS延时函数,显示调用***************/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-03
怎么叫“合并”啊?
第2个回答  2009-07-03
合并后的节点的值来自哪里呢?