你的fun里的形參a是個int類型,你寫a=1.0/a,相當(dāng)于把1.0/a的結(jié)果又強(qiáng)制轉(zhuǎn)換成了int,因為你的a肯定比1大,所以結(jié)果當(dāng)然還是0,建議把a(bǔ)=1.0/a改成return 1.0/a,a=0改為return 0
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、黃岡網(wǎng)站維護(hù)、網(wǎng)站推廣。
#include?stdio.h
int?sdk(int?m,?int?n)
{
int?i?=?0;
int?sum?=?0;
for?(i?=?m;?i??n;?i++)
{
sum?+=?i;
}
return?sum;//====================
}?//定義求和函數(shù)
int?main()
{
int?i?=?0;
int?m,?n?=?0;
int?sum?=?0;
printf("輸入m和n\n");
do
{
scanf("%d?%d",?m,?n);
sum=sdk(m,?n);//====================
printf("m~n的和為%d",?sum);
}?while?(m?!=?-1??n?!=?-1);
return?0;
}
a=1/2×b×n,這個表達(dá)式是有問題的,1÷2求商的話,他永遠(yuǎn)等于零,所以你的結(jié)果不管輸入什么都是為零的。
sqrt的返回值類型是double型,你輸出的時候用%d當(dāng)然結(jié)果是錯的了,可以試試類型轉(zhuǎn)換,把最后一個printf語句改成如下:
printf("%d\n",(int)sqrt(n));
clock() 獲取毫秒。程序執(zhí)行太快,時間差為0
這是用clock() 的例子:
void example_dt_ms()
{
clock_t tick1,tick2;
int i,j,k;
double dt;
tick1=clock(); //ms
//for (i=0;i1000;i++) for (j=0;j1000;j++) for (k=0;k100;k++) {};
wait_ms(2000);
tick2=clock();
dt = (double) (tick2 - tick1);
printf("==============\nexample_dt_ms:\n");
printf("dt = %lf ms\n",dt);
}
精確計時間差:
用QueryPerformanceCounter()函數(shù)返回當(dāng)時時鐘讀數(shù),計時開始用它得到開始讀數(shù),計時結(jié)束用它得到結(jié)束讀數(shù),兩個數(shù)相減是時間差讀數(shù)。讀數(shù)轉(zhuǎn)換為時間,要用QueryPerformanceFrequency()函數(shù)獲得時鐘頻率,讀數(shù)除以時鐘頻率,得時間,單位是秒。乘1000得毫秒。據(jù)說,這種方法比較精確。
scanf("% f", x);中%f之間不能有空格,否則會讀入錯誤,應(yīng)改為:
scanf("%f", x);
修改后的代碼和運行結(jié)果如下:
輸入6,輸出6+3=9,結(jié)果正確~
本文題目:c語言函數(shù)結(jié)果永遠(yuǎn)為0 c語言的0是正確還是錯誤
標(biāo)題鏈接:http://jinyejixie.com/article0/dosdiio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、域名注冊、商城網(wǎng)站、面包屑導(dǎo)航、外貿(mào)建站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)