脑电图需要多少钱:c语言设计n

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 17:23:31
??(17)以下程序运行后的输出结果是 【17】 。
?? struct NODE
??{ int k;
?? struct NODE *link;
??};
??main()
??{ struct NODE m[5],*p=m,*q=m+4;
?? int i=0;
?? while(p!=q){
?? p->k=++i; p++;
?? q->k=i++; q--;
?? }
?? q->k=i;
?? for(i=0;i<5;i++) printf("%d",m[i].k);
?? printf("\n");
??}
谁能说明一下个行的意思
说的越详细越好

怎么问这么多啊

//c语言设计n
struct NODE
{
int k;
struct NODE *link;//在本程序中不起作用,可忽略不计
};
void main()
{
struct NODE m[5],*p=m,*q=m+4;//分别定义了结构数组m,指向结构数组m的首位的指针p,和指向结构数组m的末位的指针q
int i=0;
while(p!=q)//执行条件是p和q指向的不是同一个位置,即当p和q都指向中间位置时中断循环
{
p->k=++i; p++;//++i是立即增1,p指针向后移
q->k=i++; q--;//i++是下一轮增1,q指针向前移
}
q->k=i;//i=4,此处令m[2].k=4
for(i=0;i<5;i++) printf("%d",m[i].k);//输出结果
printf("\n");
}
while循环的执行过程如下:
p->k=1;p++ 此处令m[0].k=1
q->k=1;q-- 此处令m[4].k=1

p->k=3;p++ 此处令m[1].k=3
q->k=3;q-- 此处令m[3].k=3

再有q->k=i令m[2].k=4

最后结果是13431