Ⅰ c語言數字加減乘除運算,計算結果不對,哪裡出了問題
把unsignedchar改成unsignedint,我用VS2019沒問題的
Ⅱ 為什麼我用C語言編寫的乘法運算程序結果輸出錯誤
INT型的值范圍為-32768-32767
你這個結果是54243,溢出了,當然顯示不正常,/U為長整形,可以正常顯示
Ⅲ c語言的加減乘除運算,為什麼運算不正確。
因為你的op是char,輸入的時候應該用%c而不是%lf
Ⅳ 我寫的這個兩個數相乘的c語言程序哪裡出錯了、
你在scanf()函數里加了個逗號,所以在輸入時必須也輸入逗號
如
1,2
這樣才能輸出正確的結果
Ⅳ C語言連乘時結果錯誤
13! = 6227020800
long int 在32位情況下依舊為4位(我用sizeof(long int)試過),所以和int范圍一樣,不能存的下13!,1932053504是溢出的結果
可以使用long long int(gcc下)或者__int64(VC中)來存結果,輸出分別用%lld和%I64d
Ⅵ c語言大整數乘法,我的程序不知道哪裡出錯了,可以運行結果有點不對。
大數乘法沒必要比較輸入的兩個數的長度,雖然計算的順序不同,但是結果一樣,多此一舉,這是我寫的程序,你參考下,你的程序運行前幾個數字有的時候是0,注意改下
#include<stdio.h>
#include<string.h>
voidmultiply(char*a,char*b,char*c)
{
inti,j,ca,cb,d[10000],*s=d;
ca=strlen(a);
cb=strlen(b);
for(i=0;i<ca+cb;i++)
s[i]=0;
for(i=0;i<ca;i++)
for(j=0;j<cb;j++)
s[i+j+1]+=(a[i]-'0')*(b[j]-'0');
for(i=ca+cb-1;i>=0;i--)
if(s[i]>=10)
{
s[i-1]+=s[i]/10;
s[i]%=10;
}
i=0;
while(s[i]==0)
i++;
for(j=0;i<ca+cb;i++,j++)
c[j]=s[i]+'0';
c[j]='