⑴ c語言輸入使用double型時,輸出總是出錯
C語言中scanf輸入一般是不控制精度的,只有printf輸出才會控制精度
一般輸入輸出的佔位符浮點型(float)用「%f」,雙精度型(double)用「%lf」
!注意double的「%lf」中的「l」是字母「L」的小寫,不是數字「1」!
「%1f」「%2f」「%.2f」之類的在輸入中是不規范的語法,一般只在輸出中使用,表示取幾位有效數字
⑵ 關於C語言浮點型演算法輸出不正常
返回值不一定是0,可以使表達式,變數等;本題,返回值用括弧擴起來,其實和不擴起來時一樣的,返回的都是一個float變數hiy的值
⑶ c語言浮點型運算錯誤
給定的輸入數據式樣中間有逗號分隔嗎:scanf("%d,%d",&p,&q);
如果是空格分隔就要改為:scanf("%d%d",&p,&q);這樣才行
⑷ C語言輸出float型時,輸出的數值不對,怎麼破
#include<stdio.h>
int main(){
float sum,temp;
printf("Input your number\n");
scanf("%f",&sum);
printf("%.2f\n",sum);//因為計算機存儲浮點數是採用二進制科學計數法來存儲的,絕大部分小數不能完全轉換成二進制,因此,浮點型數據在計算機中就是個近似數!當不約束小數點後的位數時,看到的會與我們輸入的數據有差異,改善辦法,一、用double,二、輸出時控制小數點後的位數
return 0;
}
⑸ c語言scanf輸入float編譯器出錯,編譯器故障
浮點庫不會自動裝載,需要顯式使用浮點才行
把float a改為
float a=1.0;
就好了。
這不是bug,設計時故意這樣的,因為這樣可以省裝載一些庫(以前內存很小,省裝載很重要),很少有程序一個浮點數不用,就直接scanf的,所以也不會有問題
⑹ C語言中以單精度浮點型輸入,輸出格式為%d或%c,為什麼顯示的數不對謝謝!
肯定不對啊!
你輸入的時候是單精度浮點數類型,c語言中變數就是float類型,輸入使用的格式是%f。
不同的變數類型在內存中的儲存方式也完全不同,當你用整型格式(int)去讀一個浮點格式(float)的數字時,不可能讀出正確的結果。
所以,你必須用跟輸入時相同的格式(%f)輸出(另外,還必須跟變數的類型一致),才能顯示正確的數字。
⑺ c語言問題,輸出的float數據不對
#include int main(){ float sum,temp; printf("Input your number\n"); scanf("%f",&sum); printf("%.二f\n",sum);//計算機存儲浮點數採用二進制科計數存儲絕部數能完全轉換二進制浮點型數據計算機近似數約束數點位數看與我輸入數據差異改善辦、用double,二、輸控制數點位數 return 0;
⑻ C語言 float型數值錯誤
這是因為計算機無法精確表示浮點數,將%f改成%.2f可以輸出2位小數。
⑼ C語言,提示浮點錯誤怎麼回事
#include <iostream>
#include<iomanip>//小數點保留函數頭文件
using namespace std;
int main()
{
int n,i;
float s;
cin>>n;
s=0;
for(i=1;i<=n;i++)//這要i=1開始;如果從i=0,分母為0,演算法錯誤
s+=1.0/(i*(i+1)*(i+2));//整型轉化為float(浮點型)時要乘1.0;
cout.setf(ios::showpoint);
cout.precision(6);//保留6位小數
cout.setf(ios::fixed);
cout<<"s="<<s<<endl;
return 0;
}