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

c語言算術編程

發布時間: 2022-06-21 00:47:35

『壹』 c語言怎麼進行算術運算

#include "stdio.h" void main() { int a,b,c; scanf("%d%d",&a,&b); c=a+b; printf("%d\n",c); getch(); }

具體如下:
1、簡介C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
2、基本介紹
C語言,是一種通用的、過程式的編程語言,廣泛用於系統與應用軟體的開發。具有高效、靈活、功能豐富、表達力強和較高的移植性等特點,在程序員中備受青睞。最近25年是使用最為廣泛的編程語言。
3、運算
C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。在學習中,對此合理進行分類,找出它們與數學中所學到運算之間的不同點之後,記住這些運算也就不困難了,有些運算符在理解後更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。

『貳』 c語言中x+a%3*(int)(x+y)%2/4 x=2.5 a=7 y=4.7

解題步驟:

1、(int)(2.5+4.7)=(int)(7.2)=7,式子變 x + a%3 *7 %2/4;

2、a%3=1,式子變 x + 1 *7 %2/4;

3、1*7=7,式子變 x + 7 %2/4;

4、7 %2=1,式子變 x+1/4;

5、1/4 整數除整數的除法先做,商得 0,式子變 x + 0;

6、x+0=2.5 + 0=2.5,答案2.5。

字元解釋:

(int)(x+y) -- 括弧里的先做

2/4 -- 整數2除以整數4,得整數0,但這里前面還有運算符%,所以你不能先做2除以4的整數除法。

% 是整數與整數的除法求余數運算,得余數,(略去商)。

2.0/4.0 -- 浮點數除以浮點數,得浮點數的商 0.5。


(2)c語言算術編程擴展閱讀:

C語言算術編程示例:

#include <stdio.h>

int main()

{

int a = 21;

int b = 10;

int c ;

c = a + b;

printf("Line 1 - c 的值是 %d ", c );

c = a - b;

printf("Line 2 - c 的值是 %d ", c );

c = a * b;

printf("Line 3 - c 的值是 %d ", c );

c = a / b;

printf("Line 4 - c 的值是 %d ", c );

c = a % b; printf("Line 5 - c 的值是 %d ", c );

c = a++; // 賦值後再加 1 ,c 為 21,a 為 22

printf("Line 6 - c 的值是 %d ", c );

c = a--; // 賦值後再減 1 ,c 為 22 ,a 為 21

printf("Line 7 - c 的值是 %d ", c );

}

『叄』 用C語言編寫程序「算術表達式求值」

#include <stdio.h>
#include <math.h>
enum state
;
int ctoi( char c)
bool isNum( char a)
bool isOp(char op)
{
switch(op)
{
case '+':
return true;
break;
case '-':
return true;
break;
case '*':
return true;
break;
case '/':
return true;
break;
default:
return false;
break;
}
}
bool isDot(char dot)
int checkString( char str[], double *a, double * b, char* op, int num)
{
enum state s = BEGIN;
int a_i = 0;
int b_i = 0;

double num1 = 0;
double num2 = 0;
int pointNum = 0;
for( int i = 0; i < num; ++i)
{
if(str[i] == ' ')continue;
switch(s)
{
case BEGIN:
if(isNum(str[i]))

elses = ERROR;
break;
case P2:
if(isNum(str[i]))

else if(isDot(str[i]))
{
s = P3;
}
else if(isOp(str[i]))
{
*op = str[i];
s = P5;
}
else
s = ERROR;
break;
case P3:
if(isNum(str[i]))
{
num1 = num1 + ctoi(str[i]) * pow(0.1, ++pointNum) ;
s = P4;
}
else
s = ERROR;
break;
case P4:
if(isNum(str[i]))
{
num1 = num1 + ctoi(str[i]) * pow(0.1, ++pointNum);
s = P4;
}
else if(isOp(str[i]))
{
*op = str[i];
s = P5;
}
else
s = ERROR;
break;
case P5:
if(isNum(str[i]))
{
num2 = num2 * 10 + ctoi(str[i]);
s = P6;
}
else
s = ERROR;
break;
case P6:
pointNum = 0;
if(isNum(str[i]))
{
num2 = num2 * 10 + ctoi(str[i]);
s = P6;
}
else if(isDot(str[i]))
{
s = P7;
}
else
s = END;
break;
case P7:
if(isNum(str[i]))
{
num2 = num2 + ctoi(str[i]) * pow(0.1, ++pointNum);
s = P8;
}
else
s = END;
break;
case 8:
if(isNum(str[i]))
{
num2 = num2 + ctoi(str[i]) * pow(0.1, ++pointNum);
s = P8;
}
else if(isOp(str[i]))
{
s = END;
}
else
s = END;
break;
case ERROR:
printf("express error. \n");
break;
}
if (s == END || s == ERROR)
break;
}
if(s==END)
else
}
int main()
{
char op;
double a;
double b;

char string[128] = ;
scanf("%s", &string);
printf("the expression you input is : %s. \n", string);
getchar();

if (-1 == checkString(string, &a, &b, &op, 128))
{
printf("error occur while checking expression. Be sure no space in your expression when input\n");
getchar();
return 0;
}

double result;
switch(op)
{
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
case '*':
result = a * b;
break;
case '/':
if(b != 0)
result = a / b;
else
{
printf(" error! %d/%d", a, b);
return -1;
}
break;
default:
printf("undefined expression.\n");
break;
}

printf("%f %c %f = %f\n", a, op, b, result);
return 0;
}

『肆』 C語言程序設計-算術運算符 編程,把變數x中的3位數213的百位、十位、個位拆出

其中a,b,c和a2,b2,c2是x213的百,十,個位,望採納

『伍』 c語言,編程求助,算術題

一個較系統的方法是:
每個字母設置兩種狀態,已知和未知。
進行回朔搜索。從個位搜索起,等式左邊的T,Q先進行0-9的搜索,且將T,Q的狀態設置成已知。這時搜索E的值,可以很快得到結果,也將其設置成已知。然後搜索十位,此時T的值已知,搜索未知的字母,另G+N+N=T為進行下一層搜索的條件(如果個位有進位,等式左邊要加1),把矛盾的情況排除。以此類推,搜索百位,千位,由於有回朔,所以搜索的速度會快很多。這是一個DFS。
閑著無聊,寫了一下程序。結果按vingtcqre的順序為999219919。
#include
<stdio.h>
#include
<string.h>
int
f[6][9];//存儲原等式
int
r[9];//結果
char
k[9];//Known?
int
find(int
level,
int
j,
int
c/*進位*/)
{
if(level
==
6)
return
1;
if(j
==
9)
{
int
t=c;
for(int
i
=
0;
i
<
9;
++i)
t
+=
r[i]
*
f[level][i];
if(t
%
10
!=
0)
return
0;
return
find(level
+
1,
0,
t
/
10);
}
if(!k[j]
&&
f[level][j])
{
k[j]
=
1;
for(int
i
=
9;
i>=
0;
--i)
{
r[j]
=
i;
if(find(level,
j+1,
c))
return
1;
}
k[j]
=
0;
return
0;
}
else
{
return
find(level,
j+1,
c);
}
}
int
main()
{
memset(f,
0,
sizeof(f));
memset(r,
0,
sizeof(r));
memset(k,
0,
sizeof(k));
//按vingtcqre的順序
f[0][4]
=
1;
f[0][6]
=
2;
f[0][8]
=
-1;
f[1][3]
=
1;
f[1][2]
=
2;
f[1][4]
=
-1;
f[2][1]
=
2;
f[3][1]
=
1;
f[3][5]
=
2;
f[3][8]
=
-1;
f[4][0]
=
1;
f[4][7]
=
-1;
f[5][4]
=
-1;
find(0,
0,
0);
//這時r中按vingtcqre的順序保存結果。
return
0;
}

『陸』 編程c語言或者c++計算 算術表達式

Add brackets for calculationpriority:

#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"iostream"
usingnamespacestd;

/*checkifthiselementisanumber*/
/*a:string*/
/*b:lengthofthestring*/
intisThisSingleNumber(char*a,intb)
{
for(inti=1;i<b-1;i++)
{
if(*(a+i)=='+'||*(a+i)=='-'||*(a+i)=='*'
||*(a+i)=='/'||*(a+i)=='('||*(a+i)==')')
return0;
}
return1;
}

/*insertanCharacter*/
/*a:inserthere*/
/*b:insertcharacter*/
voidinsertChar(char*a,charb)
{
char*al=newchar[strlen(a)+1];
memset(al,0,strlen(a)+1);
memcpy(al,a,strlen(a));
*a=b;
memcpy(a+1,al,strlen(al)+1);
}

/*findtheendoftheElement*/
/*a:startcharacteroftheelement*/
/*return:lengthoftheElement*/
intfindElementEnd(char*a)
{
intcount=0;
intflag=0;
for(;1;count++)
{
if(*(a+count)=='(')
flag++;
elseif(*(a+count)==')')
flag--;
if(flag==0)
break;
}
returncount+1;
}

/**/
char*findLastElement(char*a)
{
intcount=1;
intflag=0;
for(;1;count++)
{
if(*(a-count)==')')
flag++;
elseif(*(a-count)=='(')
flag--;
if(flag==0)
break;
}
returna-count;
}

/**/
char*findNextElement(char*a)
{
intcount=1;
intflag=0;
for(;1;count++)
{
if(*(a+count)=='(')
flag++;
elseif(*(a+count)==')')
flag--;
if(flag==0)
break;
}
returna+count+1;
}

/*addbracket,*/
voidaddBracket(char*a)
{
//addBracketsfornumber
for(inti=0;1;i++)
{
if(*(a+i)>='0'&&*(a+i)<='9'&&(*(a+i-1)<'0'
||*(a+i-1)>'9'))
{
insertChar(a+i,'(');
i++;
}
elseif(i>0&&(*(a+i)<'0'||*(a+i)>'9')&&*(a+i-1)>='0'
&&*(a+i-1)<='9')
{
insertChar(a+i,')');
i++;
}
if(*(a+i)=='')
{
break;
}
}

//
for(inti=0;*(a+i)!='';i++)
{
if(*(a+i)=='*'||*(a+i)=='/')
{
insertChar(findLastElement(a+i),'(');
i++;
insertChar(findNextElement(a+i),')');
}
}
//addBarcketforaddandsubtract
for(inti=0;*(a+i)!='';i++)
{
if(*(a+i)=='+'||*(a+i)=='-')
{
insertChar(findLastElement(a+i),'(');
i++;
insertChar(findNextElement(a+i),')');
}
}
}

/*recursivecomputation*/
doublecaculate(char*a,intlength)
{
if(isThisSingleNumber(a,length)==1)
returnatoi(a+1);
intoperatorPosition=findElementEnd(a+1);
switch(*(a+operatorPosition+1))
{
case'+':
return(caculate(a+1,operatorPosition)+
caculate(a+2+operatorPosition,length-3-operatorPosition));
case'-':
return(caculate(a+1,operatorPosition)-
caculate(a+2+operatorPosition,length-3-operatorPosition));
case'*':
return(caculate(a+1,operatorPosition)*
caculate(a+2+operatorPosition,length-3-operatorPosition));
case'/':
return(caculate(a+1,operatorPosition)/
caculate(a+2+operatorPosition,length-3-operatorPosition));
default:
returncaculate(a+1,length-2);
}
}

intmain()
{
chara[255]={0};

while(1)
{
cin>>a;
addBracket(a);
cout<<"ret:"<<caculate(a,strlen(a))<<endl;
}

return0;
}

『柒』 算術 - 加減法【C語言編程,求高手指點一二】!

我用TC寫過一個
'大數運算'
模塊
不過,我只能處理
255個數字
以內的運算
因為
gets(char
*str)
只接受
255以內的
字元
如果樓主覺得
可以的話
,可以發Email到我的
QQ郵箱
答案補充
方法:
其實很簡單,就和用筆在紙上運算一樣
1.
全部用字元指針來存儲和運算
2.
逐位相加(減),並且處理進位(借位)
如果還有乘法、除法,那麼可以以加減法作為運算基礎
答案補充
重復字元太多,帖不上來啊!

『捌』 c語言設計一個簡單的計算器程序

#include<stdio.h>//計算器

voidmenu()//自定義的菜單界面

printf("--------------------\n");

printf("請輸入你的選擇\n");

printf("1.+\n");

printf("2.-\n");

printf("3.*\n");

printf("4./\n");

printf("--------------------\n");

intmain()

inti=0;

intj=0;

intnum=0;//計算結果存放在nun

intselect=0;//選擇的選項存放在select

do//do-while先執行再判斷循環條件,即可實現重復計算功能

menu();//列印出菜單界面

scanf("%d",&select);//輸入你的選項

printf("請輸入計算值:");

scanf("%d%d",&i,&j);//輸入要計算的數值

switch(select)

case1:

printf("%d+%d=%d\n",i,j,num=i+j);//實現加法功能

break;

case2:

printf("%d-%d=%d\n",i,j,num=i-j);//實現減法功能

break;

case3:

printf("%d*%d=%d\n",i,j,num=i*j);//實現乘法功能

break;

case4:

printf("%d-%d=%d\n",i,j,num=i/j);//實現除法功能

break;

default:

printf("輸入有誤重新選擇");

break;

}while(select);

return0;

運行結果:

(8)c語言算術編程擴展閱讀:

return表示把程序流程從被調函數轉向主調函數並把表達式的值帶回主調函數,實現函數值的返回,返回時可附帶一個返回值,由return後面的參數指定。

return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。

『玖』 C語言編程實現兩個整數的算數運算

#include<iostream.h>
#include<stdio.h>
int main()
{ int a,b;
char ch,pm='Y';
while(pm!='N')
{
cout<<"請輸入第一個數:"<<endl;
cin>>a;
cout<<"請輸入運算符號:"<<endl;
cin>>ch;
cout<<"請輸入第二個數:"<<endl;
cin>>b;
if(ch=='+')
cout<<a+b<<endl;
else if(ch=='-')
cout<<a-b<<endl;
else if(ch=='*')
cout<<a*b<<endl;
else if(ch=='/')
cout<<a/b<<endl;
cout<<"結束輸入N,繼續輸入任意鍵!"<<endl;
pm=getchar();
}
return 1;}
要c++的行嗎?還要換成c嗎?