C語(yǔ)言中用scanf輸入雙精度浮點(diǎn)數(shù)的源代碼如下
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)阜新,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220
#include stdio.h
#include stdlib.h
int main()
{
int n, *a, i;
printf("請(qǐng)輸入數(shù)組長(zhǎng)度:");
scanf("%d", n);
a = malloc(sizeof(int) * n); /*分配內(nèi)存*/
printf("請(qǐng)輸入%d個(gè)數(shù):\n", n);
for(i = 0; i n; i++)
scanf("%d", a + i);
printf("您輸入的數(shù)是:\n");
for(i = 0; i n; i++)
printf("%d ", a[i]);
free(a); /*釋放內(nèi)存*/
return 0;
}
擴(kuò)展資料
1、scanf()函數(shù)開(kāi)始每次讀取一個(gè)輸入字符,它跳過(guò)空白字符直到遇到一個(gè)非空白字符。因?yàn)樗噲D讀取一個(gè)整數(shù),所以scanf()期望發(fā)現(xiàn)一個(gè)數(shù)字字符或者一個(gè)符號(hào)(+或-)。
2、如它發(fā)現(xiàn)了一個(gè)數(shù)字或一個(gè)符號(hào),那么它就保存之并讀取下一個(gè)字符。scanf()持續(xù)讀取和保存字符直到它遇到一個(gè)非數(shù)字的字符。如遇到了一個(gè)非數(shù)字的字符,它就得出結(jié)論,它已經(jīng)講到了整數(shù)的尾部。
3、scanf()把這個(gè)非數(shù)字字符放回輸入。這就意味著程序下一次開(kāi)始讀取輸入時(shí),它將從前面被放棄的那個(gè)非數(shù)字字符開(kāi)始。最后,scanf()計(jì)算它讀取到的數(shù)字的相應(yīng)數(shù)值,并將該值放到指定的變量中。
#include?stdio.h
int?main()
{
int?i,?n;
double?a[1000];
scanf("%d",?n);?//讀入n(元素個(gè)數(shù))
for(i=0;in;i++)
scanf("%lf",?a[i]);?//一次讀入雙精度數(shù),%lf為使用雙精度格式讀入的控制符
return?0;
}
請(qǐng)采納。
C語(yǔ)言用scanf()函數(shù)輸入雙精度數(shù)據(jù)時(shí),采用的數(shù)據(jù)格式參數(shù)必須是%lf,如:
double?d;
scanf("%lf",?d?);
scanf("%f,%f",a,b);不能輸入雙精度數(shù)據(jù)嗎?
當(dāng)然不能。主要原因在于double和float類型的大小不同:
double類型數(shù)據(jù)在內(nèi)存中存儲(chǔ)占8字節(jié)(64位),按IEEE754標(biāo)準(zhǔn)存儲(chǔ),格式為:1位符號(hào)位+11位指數(shù)位+52位小數(shù)位
float類型數(shù)據(jù)在內(nèi)存中存儲(chǔ)占4字節(jié)(32位),按IEEE754標(biāo)準(zhǔn)存儲(chǔ),格式為:1位符號(hào)位+8位指數(shù)位+23位小數(shù)位
當(dāng)輸入數(shù)據(jù)格式串為%f時(shí),scanf()按float類型將輸入的數(shù)據(jù)存儲(chǔ)到內(nèi)存地址中,這時(shí),若再按double類型解釋輸出數(shù)據(jù)時(shí),數(shù)據(jù)當(dāng)然不是用戶輸入的內(nèi)容了。
主要通過(guò)scanf格式化輸入語(yǔ)句,主要代碼如下,
double x;//聲明變量
scanf("%lf",x);//賦值,L/l 長(zhǎng)度修飾符,輸入"長(zhǎng)"數(shù)據(jù),對(duì)應(yīng)double
printf("x=%lf\n",x);//打印輸出
int scanf(const char *format,...);是格式輸入函數(shù),即按用戶指定的格式把數(shù)據(jù)輸入到指定的變量之中。需要注意的是,針對(duì)浮點(diǎn)數(shù)scanf()函數(shù)中沒(méi)有精度控制,像 scanf("%5.4lf",x); 就是非法的。
名稱欄目:c語(yǔ)言輸入雙精度函數(shù) c語(yǔ)言雙精度輸入格式
本文地址:http://jinyejixie.com/article48/ddooohp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站策劃、網(wǎng)站營(yíng)銷、外貿(mào)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)