⑴ c語言輸出值為0
#include<math.h>
#include<stdio.h>
#include<conio.h>
intmain()//些微intmain(),最後return0;
{
doublesum=0,n=0;//因為最後得到的肯定是小數,所以定義為double類型
inti;//i定義為int
for(i=1;i<=40;i++)
{
sum=(pow(-1,((double)i+1.0))*(1.0/i));//將i轉換為double進行運算
n+=sum;//這里不是n=sum++;如果寫為n=sum++的話,那n每次循環的值是
//sum的值+1;正確的應該是將n的值加上sum的值
}
printf("值為%lf",n);
getch();//這里引入頭文件#include<conio.h>,目的是便於觀察結果
return0;
}
參考一下吧
⑵ 剛學c語言,這個輸出值為什麼是0
scanf語句錯誤,應該改為:scanf(「%f%f%f」,&v,&n,&m)才能讓系統讀入值,否則的話,v,n,,m的值都是零,所以最後總和也為0.你可以用一下下面的代碼。
#include<stdio.h>
#include<math.h>
int main()
{
float v, n, m;
float a = 3.5;
float b = 3.5;
float c = 3.5;
scanf("%f%f%f", &v, &n, &m);
float t, y, u;
float o;
t = v * a;
y = n * b;
u = m * c;
o = t + y + u;
printf("%f", o);
return 0;
}
求關注!!
⑶ C語言程序,為什麼輸出0不應該是1嗎
不對,小數和整數在計算機中的二進製表示法不一樣的,系統只是提供了轉換的功能而已,使用printf輸出的時候,是不會自己轉換的,而是強制使用指定格式輸出
比如說這個程序,最後a中存儲的值(double類型)是1.000000,這個值,前16位(二進制)肯定是0,所以使用%d格式的時候,它不會判斷對應的變數是什麼類型,就直接把它的前16位以整數的形式輸出,所以輸出的結果必然是0
所以使用%d並不能使輸出結果轉換為對應的整數,請改用%.0f輸出(因為你的變數a是double型),就可以輸出1
⑷ C語言編程設計過程中輸出結果總為0,這是為什麼
解決辦法有兩個:
上圖中輸入的數據類型為double,不應該使用%f,可以改成%lf
可以把double改成float,但是精度會變低
⑸ C語言問題:為什麼輸出結果是0
int x=0.5,x的值是向下取整的0
0&&1得0,0&&任何數得0,不再計算後項表達式的值,稱為&&的短路運算。
因此表達式(x&&1)&&(z<'z')的值是0。
⑹ c語言為什麼輸出結果為0
因為scanf("%f",&moHeight);輸入母親身高後會按回車輸入換行符' '
此時下一句scanf("%c ",&sex);讀到的是' '而不是'F'或'M'
因此switch語句沒有執喊唯臘行,h最終為默認值0
修改方法是在scanf("%c",&sex);前加一句getchar();來吸收山蔽換行符' '
或者修改為scanf(" %c",&sex); //注鄭滑意%c後的 最好不加,在某些編譯器會阻塞輸入
修改後的代碼和運行結果如下:
輸出正常,望採納~
⑺ 這段c語言程序為什麼會輸出0
如果後面還有一個int s,你要求輸出s。因為你的第一個s已經賦值為0了,第二個s在循環裡面,還沒有跑完就直接輸出了,這時候輸出的是第一個s,當然是0了。至於去掉int後,s指向於剛開始你定義的int s,經過循環運算後,s就被賦值為30了。
⑻ C語言中編譯正確,但是運行結果顯示全是0,怎麼回事啊
a=1/2×b×n,這個表達式是有問題的,1÷2求商的話,他永遠等於零,所以你的結果不管輸入什麼都是為零的。
⑼ C語言 輸出結果為什麼是0
short類型默認大小為2位元組,所能表示的最大無符號數為2^16-1=65535。而對核歲short類型變數a賦值為65536時超出short類型數據罩局的范圍,發生溢出。65536=(10000000000000000)B。最高位1被捨去,物氏讓a的值為0.b理所當然為0.