trans(node);???????????????????????????????????????//改成trans(node);
創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為西山企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,西山網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
void?trans(struct?linknode?node[8])
{int?o,i,m;
for(o=0;o8;o++)
{for(i=0;i2;i++)
{m=node[o].near[i];
for(i=0;i8;i++)
{if((node[m].dtc[i]+node[o].dtc[m])=node[o].dtc[i])
{node[o].dtc[i]=(node[m].dtc[i]+node[o].dtc[m]);
node[o].path[i]=m;
}
}
}
}
}
以形參的形式放入函數(shù)體進(jìn)行操作,只需要將形參和實(shí)參類型匹配就可以了。比如a[i].riqi.year是int型,那么你的函數(shù)就可以寫成void
fun(int
i)。
這是文件包含的問題,你把find函數(shù)也放到main.c文件里,就可以了,否則find函數(shù)不認(rèn)識(shí)你定義的結(jié)構(gòu)體
c語言的結(jié)構(gòu)體是一組數(shù)據(jù)的組合,并不是簡單的單一類型。所以在查找和輸出的時(shí)候,均不能直接操作,而是要進(jìn)行變通。
1
查找。
對(duì)于以某一項(xiàng)為關(guān)鍵字進(jìn)行查找時(shí),比如在結(jié)構(gòu)體中有int型的成員a,要查找a為100的結(jié)構(gòu)體變量,這時(shí)需要遍歷每個(gè)結(jié)構(gòu)體(數(shù)組、鏈表、或者其它任意形式),對(duì)每個(gè)元素的成員a值進(jìn)行比較,符合的則表示查找成功。
對(duì)于結(jié)構(gòu)體中元素較多,同時(shí)要對(duì)整個(gè)結(jié)構(gòu)體每個(gè)元素都匹配才算查找到的特殊情況,可以使用memcmp的方式,整體進(jìn)行比較,以減少代碼量。不過這種情況較為少見,不過多描述。
2
輸出。
對(duì)于結(jié)構(gòu)體的輸出,其實(shí)就是對(duì)其每一項(xiàng),或者若干項(xiàng)成員變量的輸出。
所以可以使用基本的輸出函數(shù),對(duì)每一項(xiàng)單獨(dú)輸出,輸出中為了方便閱讀,可以加一些說明文字。
如果對(duì)結(jié)構(gòu)體輸出有多處調(diào)用的需求,可以在將該功能封裝為函數(shù),供各個(gè)需要的函數(shù)調(diào)用。這樣的好處是,當(dāng)結(jié)構(gòu)體的成員出現(xiàn)變化,或者結(jié)構(gòu)體輸出要求更改時(shí),修改一處代碼即可完成所有的輸出修改,實(shí)現(xiàn)易于維護(hù)的效果。