當前位置:首頁 » 編程語言 » c語言運算b1怎麼計算
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言運算b1怎麼計算

發布時間: 2022-08-19 15:59:55

c語言各種運算符的運演算法則

c語言中,條件運算符的法則:
由高到低是:!(非),&&(與),||(或)
&&左邊為0則不看右邊運算,||左邊為1不看右邊!
例:
main()
{
int a=1,b=2,c=3,d;
d=!b>a&&c||c>2
printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);
}
運行結果:a=1
b=0
c=3
d=1
程序執行說明:先執行!b>a即0>a,結果為0(b=0)
再執行0&&c結果為0,執行c>2結果為1
0||1結果為1
因為執行順序為右結合,所以將整個表達式的結果給 d為1
}

條件運算符:
(表達式1)?(表達式2):(表達式3)
運算規劃:如果表達式1為真,返回表達式2的結果,否則返回表達式3的結果
例如:
A=1,B=2
(A>B)?A:B
返回值為2
注意表達式是右結合的.
例:
A=1,B=2,C=3
(A>B)?A:B?C:B
相當於(A>B)?A:(B?C:B)
返回值為3

Ⅱ 怎麼用c語言輸出b1b2這兩個圖案,要用for循環,求解答

b1的圖案:

#include<stdio.h>
voidmain()
{
inti,j;
for(i=9;i>=1;i-=2)
{
for(j=1;j<=i;j++)printf("*");
printf(" ");
}
}

b2的圖案:

#include<stdio.h>
voidmain()
{
inti,j;
for(i=9;i>=1;i-=2)
{
for(j=1;j<=9-i;j++)printf("");
for(j=1;j<=i;j++)printf("*");
printf(" ");
}
}

Ⅲ 求助c語言b1

B D C C B C A G C D 應該是這個。。

Ⅳ 用C語言怎麼寫個計算器

一、用戶界面是用圖形窗口還是命令行窗口。
如果是命令行窗口它的數據輸入輸出比較簡單。
如果是圖形窗口則要涉及,圖形窗口相同的操作了。這個部分如果你不會,那你需要專門學習一樣。

二、支持哪些計算功能。
除了加減乘除外,是否還支持其他高級的計算功能?
加減乘除的計算精度。
32位系統中,如果計算結果為不大於32位二進制的數。(64位系統則為不大於64位數)你可以直接使用C語言的相應的加減乘除表達式完成。
如果是支持超大數的運算,那就需要採取特殊手段了。

比如32位系統中,計算的數超過32位。比如兩個128位數相加。
需要將128位拆分成4個32位。將每個32位作為整體。在依照數學的多位數加進行計算。
A1 B1 C1 D1
A2 B2 C2 D2
--------------

D1與D2相加(需要檢測是否有進位,也就是計算結構是否有溢出)
C1與C2相加,同樣要檢測進位,並且要加上D1與D2結果的進位。
B1與B2相加,同樣要檢測進位,並且要加上C1與C2結果的進位。
B1與B2相加,同上類推。

在實際程序時,可以將用戶界面與加減乘除程序分離。即用戶界面的代碼要與計算程序的代碼分在不同的函數中。
又用戶界面代碼調用計算函數。計算函數將結果返回給用戶界面代碼。

以命令行界面為例,
用戶界面代碼,只是等待用戶輸入,將相應用戶信息轉換成合適的格式,
然後調用相應計算函數。
計算函數做完計算以後,返回相應數字。
用戶界面代碼,再將返回的數字轉換成適當的格式,顯示在窗口上。

Ⅳ C語言程序運算

本題的一個完整的c程序如下,在win-tc和Dev-c++下調試通過。需要說明的是這里的m,n表示x的冪分別是m-1次和n-1次,同時p[]和q[]的各系數是從x^(m-1)和x^(n-1)到x^0前的系數,和你上面的寫法正好相反,所以輸入時要注意:
/*多項式乘法程序*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#define MAX 50

void npmul(p,m,q,n,s)
int m,n;
double p[],q[],s[];
{
int i,j;
for (i=0; i<=m-1; i++)
for (j=0; j<=n-1; j++)
s[i+j]=s[i+j]+p[i]*q[j]; /*迭代計算各項系數*/
return;
}

double compute(s,k,x) /*計算所給多項式的值*/
double s[];
int k;
float x;
{
int i;
float multip = 1;
double sum = 0;
for (i=0;i<k-1;i++)
multip = multip * x; /*先求出x的最高次項的值*/
for (i=0;i<=k-1;i++)
{
sum = sum + s[i] * multip; /*依次從高到低求出相對應次項的值*/
if (x!=0)
multip = multip / x;
}
return sum;
}

void main()
{
int i,j,m,n;
double px[MAX],qx[MAX],rx[MAX];
float x;
clrscr();
for(i=0;i<MAX;i++)
rx[i]=0;
puts(" This is a polynomial multiplication program.");
puts("It calculate the proct of two polynomials: P(x) and Q(x)");
puts(" P(x)=Pm-1*x^(m-1)+Pm-2*x^(m-2)+...+P1*x+P0");
puts(" Q(x)=Qn-1*x^(n-1)+Qn-2*x^(n-2)+...+Q1*x+Q0");
printf("\n >> Please input m (>=1): ");
scanf("%d",&m);
printf(" >> Please input P%d, ... P0 one by one:\n",m-1);
for(i=0;i<m;i++)
scanf("%lf",&px[i]);
printf("\n >> Please input n (>=1): ");
scanf("%d",&n);
printf(" >> Please input Q%d, ... Q0 one by one:\n",n-1);
for(i=0;i<n;i++)
scanf("%lf",&qx[i]);
npmul(px,m,qx,n,rx);
printf("\nThe proct of two polynomials R(x) is :\n");
for (i=m+n-1,j=0;i>=1;i--) /*逐行逐項列印出結果多項式*/
{
printf(" (%f*x^%d) ",rx[m+n-1-i],i-1);
if(i-1>0)
printf(" + ");
else
printf(" . ");
if(j==2)
{
printf("\n");
j=0;
}
else
j++;
}
printf("\n");
printf("Input the value of x: ");
scanf("%f",&x);
printf("\nThe value of the R(%f) is: %13.7f",x,compute(rx,m+n-1,x));
puts("\n Press any key to quit...");
getch();
}

Ⅵ C語言運算符相關

經過調試發現編譯器內部是這樣做的:
當遇到同一個變數有多個++操作的時候,將頭兩個結合進行結果返回。
比如:b2=(++a2)+(++a2)+(++a2);
因為編譯器把前面兩個(++a2)+(++a2)結合在一起進行計算,a2等於10,經過2次++,得a2等於12,因此返回12,得到12+12=24,然後再和第三個++a2進行相加,此時a2再加1等於13,從而24+13=37
如果再多一個的話:b2=(++a2)+(++a2)+(++a2)+(++a2);
你可以試一下,跟剛才分析的一樣,也是頭兩個結合,頭兩個相加結果24,然後和第三個進行相加,此時a2加1等於13,24+13=37,最後和第四個進行相加,此時a2加1等於14,37+14=51。
如果再多加幾個也是一樣,後面的都不會結合相加結果返回的,只有頭兩個是這樣。因此我認為這跟編譯器強相關,不同的編譯器可能輸出結果不同。

還有b4,跟前面的相同,也是把頭兩個(--a4)結合起來返回了,所以返回的是8+8=16,再和第三個相加,此時a4減1等於7,16+7=23

至於答案,我覺得39(13+13+13得到)和21(7+7+7得到)更為合理。或者是36(11+12+13得到)和24(9+8+7得到)也較為合理。
VC的輸出37和23,則較為不合理,做法有點令人匪夷所思。我個人認為是bug

Ⅶ C語言運算解釋.d=a&b怎麼算

& C語言是求與的意思。

求與是二進制的與運算。如1100&1010求與結果為1000,也就是說同為真(1)的時候為真(1)。
1 1 0 0

1 0 1 0 &
——————————

1 0 0 0
同理將a=12,b=5轉換為2進制,a=1100(12),b=0101(5),d為ab求與
1 1 0 0

0 1 0 1 &
——————————

0 1 0 0
所以d=4(0100)。
輸出的結果是 12&5 = 4(樓主寫的是c,應該是打錯了)!
滿意請採納!謝謝

Ⅷ C語言運算

這是考函數的參數的
chang2()中,b作為形參,它是輸入參數,不是輸出參數
也就是說它是函數外部,向函數內部傳遞參數用的
它在函數內部雖然減1了,但並不能把它傳到函數外部。