當前位置:首頁 » 編程語言 » c語言分數乘括弧出錯
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言分數乘括弧出錯

發布時間: 2022-08-22 02:06:47

㈠ 一個計算c語言下的if語句的練習題,提示數據轉換出錯,打括弧出錯,為什麼

這句錯了 scanf("%d",&f);
%d用來表示 int, 你的f是float, 應該寫 scanf("%f",&f);
格式錯誤讀到的數據當然會錯.

錯了兩次

㈡ C語言程序關於分數相乘中的問題。

#include<stdio.h>
int main()
{
int n,a,b,i=0,j,k,x,y,z;
scanf("%d",&n); //有n個分數要相乘
x=1;
y=1;
while(i<n)
{
scanf("%d%d",&a,&b);
x=x*a; //分子累乘
y=y*b; //分母累乘
i++;
}
if(x%y==0) //約分為整數或1時的情況
{ z=x/y;
printf("%d\n",z);
return 0;
}
if((x<y)&&(x%y!=0)) //真分數求最大公約數並約分
{
for(j=x;j>=2;j--) //!!如果不可約分則無結果,改為for(j=x;j>=1;j--)
{
if((x%j==0)&&(y%j==0)) //加分數求最大公約數並約分 x=x/j;
x=x/j;
y=y/j;
printf("%d/%d\n",x,y);
return 0;
}
}
if((x>y)&&(x%y!=0))
{
for(k=y;k>=2;k--)//!!同理改為for(k=y;k>=1;k--)
{
if((x%k==0)&&(y%k==0))
x=x/k;
y=y/k;
printf("%d/%d\n",x,y);
return 0;
}
}
}

㈢ C語言乘法表代碼出錯

1 :。。。while(p!=123456),這句是有問題的,平時int型,通常最大表示範圍是65535 而你這明顯超出這一范圍,造成死循環。

2、不要在函數內嵌套定義函數

㈣ 在C語言中為什麼多加了一對括弧,運算結果就會變的不一樣

n m k都是整型。
所以 加了括弧後,先計算
(n-m+k)/k是按照整型計算的。
不會保留小數部分 於是導致結果出錯。
而不加括弧 ,先乘P,p是double,結果為double,保證了正確性。

㈤ C語言編寫的乘法運算的程序為什麼結果顯示不對

錯誤很明顯了,不應該用長整形輸出,理由:長整型是4個位元組的,整型是2個位元組的,你輸入的值是147*369<65535 所以在2個位元組范圍內,用長整型輸出,勢必高位的2個位元組內容是不必要的

另外為什麼printf("wangpan is %d\n",wangpan);是負的呢?因為%d是有符號的整型,它的最高位是符號位造成的

修改方法:改為printf("wangpan is %u\n",wangpan);就行了

㈥ 這個用C語言寫的分數的四則運算哪錯了

定義了ch但是在用c,變數名錯誤
if語句和後面的break不需要的,把這種加減乘除都不是的放在switch語句裡面的default:就好了。
case後面是字元'+'之類的要加單引號。
case語句後面不能加『;』要改成『:』冒號

㈦ c語言 分數的四則運算為什麼顯示浮點數運算錯誤

優先順序:括弧優先順序最高,結合方式從左往右
% * / 是同一優先順序,但要高於+ - ,結合方式從左往右
所以說取余與四則運算是同級別是不對的
現在分析你的算式:先不論你的x,y取值 輸出結果為0
首先執行() x+y的值被強制轉換為整型
其次從左往右執行 a=10 a%3=1 (int)(x+y)%2要麼為0 要麼為1
如果為0 那麼0/4=0
如果為1 1/4等於幾呢 1 4都為整數那結果肯定是0
如果說 float m;m = 1 / 4; 那它的結果還是0 不信你可以用編譯器調試
那怎麼得到0.25呢 把上一句改為 m=1/4.0 結果就為0.25了
希望對你有幫助

㈧ c語言中編程問題,最後一個大括弧顯示錯誤,求大神幫忙解決這個錯誤怎麼弄

我是個剛入門的,對你寫的東西還有很多不理解的,但是我覺得你應該仔細檢查下你大括弧!「{」明顯多於「}」一般最後大括弧出問題都是因為前後不對稱出錯!

㈨ c語言括弧報錯是什麼原因呢

你的報錯有點模糊,不過看出來好像是printf()沒有被declare。
要main函數之前加上#include <stdio.h>,因為printf()函數沒有被定義在<windows.h>中。

㈩ 找了一個用C語言編寫的帶括弧運算的簡易計算器,運行結果錯的很離譜,求大神改正一下。

intmid(void)
{
intdiv;
intresult=high();
while((token=='*')||(token=='/'))//改為==,原來是=
if(token=='*')
{
match('*');
result*=high();
break;
}
elseif(token=='/')
{
match('/');
div=high();
if(div==0)
{
printf("除數為零. ");
exit(1);
}
result/=div;
break;
}
returnresult;
}

害我一頓調試。。。樓主太粗心了


其實就改了一個判斷