![](/img/trans.png)
[英]scanf catches char type string with \0 and bunch of zeros after in C
[英]C Double type displays zeros after point
我有這個奇怪的問題。 當我寫一個 double 類型的數字時,它被存儲在
double data;
多變的。 然后,當我編譯並運行代碼時,當我編寫3697.47595
3697.0000
這是代碼:
#include <stdio.h>
const int n = 12;
int stack[n], top = -1;
double Read()
{
int x = 0;
if(top < 0)
printf("Empty stack!");
else
{
x = stack[top];
top--;
}
return x;
}
void Write(int x)
{
if(top == n-1)
printf("The stack is full");
else
{
top++;
stack[top] = x;
}
}
int main()
{
double data;
printf("Enter a double (0 for quit): ");
scanf("%lf", &data);
while(data > 0)
{
Write(data);
printf("Enter a double (0 for quit): ");
scanf("%lf", &data);
}
printf("---------------------------");
printf("\nThe stack contains:\n");
while(top >= 0 )
printf("%lf ", Read());
return 0;
}
該值被截斷為int
,因為數組stack
的元素、 Write
的參數以及用於將值臨時存儲在Read
中的變量x
都是int
。 為他們使用double
來處理double
值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.