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

整數算術運算c語言pta

發布時間: 2022-05-23 11:12:37

c語言高精度計算 整數減法

#include<stdio.h>
#include<string.h>
#include<malloc.h>

constintMAXSIZE=200+1;

//完成以字元串形式的兩個大數相加。返回字元串形式的和。
//tatol←addnum1+addnum2
char*LargeNumberAdd(charconst*addnum1,charconst*addnum2,char*total){
inti,j,k=0,len,result,carry=0;
intlen1=strlen(addnum1);
intlen2=strlen(addnum2);
for(i=len1-1,j=len2-1;i>=0&&j>=0;--i,--j){
result=addnum1[i]-'0'+addnum2[j]-'0'+carry;
carry=result/10;
total[k++]=result%10+'0';
}
while(i>=0){
result=addnum1[i--]-'0'+carry;
carry=result/10;
total[k++]=result%10+'0';
}
while(j>=0){
result=addnum2[j--]-'0'+carry;
carry=result/10;
total[k++]=result%10+'0';
}
total[k]='';
len=strlen(total);
for(i=0;i<len/2;++i){
k=total[i];
total[i]=total[len-1-i];
total[len-1-i]=k;
}
returntotal;
}

//完成以字元串形式的兩個大數相減。返回字元串形式的差。
//difference←subnum1-subnum2
char*LargeNumberSub(char*subnum1,char*subnum2,char*difference){
inti,j,k,result,borrow=0;
intsign=0,swap=0;
char*pta,*ptb;
intlen1=strlen(subnum1);
intlen2=strlen(subnum2);
if(len1==len2){
for(i=0;i<len1;++i){
if(subnum1[i]<subnum2[i]){
swap=1;
break;
}
}
}
if(len2>len1||swap==1){
pta=(char*)malloc((len2+1)*sizeof(char));
ptb=(char*)malloc((len1+1)*sizeof(char));
strcpy(pta,subnum2);
strcpy(ptb,subnum1);
k=len1;
len1=len2;
len2=k;
sign=1;
}
else{
pta=(char*)malloc((len1+1)*sizeof(char));
ptb=(char*)malloc((len2+1)*sizeof(char));
strcpy(pta,subnum1);
strcpy(ptb,subnum2);
}
for(i=len1-1,j=len2-1,k=0;i>=0&&j>=0;--i,--j){
result=pta[i]-ptb[j]-borrow;
if(result<0){
result+=10;
borrow=1;
}
elseborrow=0;
difference[k++]=result+'0';
}
while(i>=0){
result=pta[i]-'0'-borrow;
if(result<0){
result+=10;
borrow=1;
}
elseborrow=0;
--i;
difference[k++]=result+'0';
}
if(sign)difference[k++]='-';
difference[k]='';
for(i=0;i<k/2;++i){
result=difference[i];
difference[i]=difference[k-1-i];
difference[k-1-i]=result;
}
free(pta);
free(ptb);
returndifference;
}

intmain(){
chars[MAXSIZE]="1234567";
chart[MAXSIZE]="87086543";
charresult[MAXSIZE+1];
printf("%s+%s=%s ",s,t,LargeNumberAdd(s,t,result));
printf("%s-%s=%s ",s,t,LargeNumberSub(s,t,result));
return0;
}

㈡ C語言算術運算符是哪些

七個


*
/
%
++
--
加減乘除不用我說了吧
"%"求余,就是算除法,值是他的余數
"/"這個是除法,但是有一點注意,兩邊操作數全為整數時,值是取整的。
「++」是自加,比如說i++就是i的值自動加1,規則是i++是鮮賦值再自加,++i是先自加再賦值。舉個例子a=i++這個是先把i的值賦給a,然後i再自加。a=++i是i先自加,然後把自加之後的值賦給a。
「--」是自減,和自加的規則相同,只是值是自動減一。
C語言的運算符可分為以下幾類:
1.
算術運算符:用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種。
2.
關系運算符:用於比較運算。包括大於(>)、小於(<)、等於(=
=)、大於等於(>=)、小於等於(<=)和不等於(!=)六種。
3.
邏輯運算符:用於邏輯運算。包括與(&&)、或(||)、非(!)三種。
4.
位操作運算符:參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。
5.
賦值運算符:用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。
6.
條件運算符:這是一個三目運算符,用於條件求值(?:)。
7.
逗號運算符:用於把若干表達式組合成一個表達式(,)。
8.
指針運算符:用於取內容(*)和取地址(&)二種運算。
9.
求位元組數運算符:用於計算數據類型所佔的位元組數(sizeof)。
10.
特殊運算符:有括弧(),下標[],成員(→,.)等幾種。

㈢ 用c語言實現長整數四則運算 高分!!!!!!

我貼個找的自己調試修改,win-tc調試成功
輸入:4+(6+8)/2
輸出:11.000000
中文顯示亂碼,我英語不行,呵呵
樓主可以根據需要適當修改
---------------------------------------------
#include<stdio.h>
#include<malloc.h>
union nuionnum
{
double num1;
char num2;
};
struct lianbiao
{
struct lianbiao *p;
union nuionnum num;
int flage;/* 標志是數字還是符號 */
};

void main()
{
char c;
struct lianbiao lianhe;
struct lianbiao *next;
printf("請輸入一個計算機能識別的四則運算表達式,如:a+b*(c+d)/e\n");
while(1)
{
first:
next=&lianhe;
while((int)(c=getchar())!=10)
{
loop:
/* 將表達式放入復合鏈表中 */
if (c=='+'||c=='-'||c=='*'||c=='/'||c=='('||c==')')
{
next->num.num2=c;
if (c== '+' || c== '-' )
next->flage =1;
else if(c== '*' ||c== '/' )
next->flage =2;
else if(c== '(' )
next->flage =3;
else if(c== ')' )
next->flage =4;
next->p=calloc(1,sizeof(struct lianbiao));
next=next->p;
next->p=NULL;
}
else if(c>='0'&&c<='9')
{ long int t=1;
int flag=0;
next->num.num1=c-48;
while(((c=getchar())>='0'&&c<='9')||c=='.')
{
if (flag==1 && c!='.')
{
t=t*10;
next->num.num1=next->num.num1+(c-48.0)/t;
}
else if(c>='0'&&c<='9')
next->num.num1=next->num.num1*10+c-48;
if (c=='.')
{
flag=1;
}
}
next->flage =0;
next->p=calloc(1,sizeof(struct lianbiao));
next=next->p;
next->p=NULL;
if (c=='\n')break;
goto loop;
}
else
{
printf("不是合法的算術表達式!!!\n請重新輸入:\n");
while(getchar()!='\n') ;/* 設置重新輸入 */
goto first;
}
}
/* 將鏈表中的數字和符號分別入棧 */
next=&lianhe;
{
int i=0,j=0;/* 用來標記棧的頂點 */
double arrd[100];
char arrc[2][100];
while(next->p!=NULL)
{
if (next->flage !=0&&next->num.num2==')')/* 括弧的外理 */
{
while(arrc[0][i-1]!='(')/* 出棧 */
{
if (arrc[0][i-1]=='+')
{
arrd[j-2]=arrd[j-2]+arrd[j-1];
i=i-1;
j=j-1;
}
else if(arrc[0][i-1]=='-')
{
arrd[j-2]=arrd[j-2]-arrd[j-1];
i=i-1;
j=j-1;
}
else if(arrc[0][i-1]=='*')
{
arrd[j-2]=arrd[j-2]*arrd[j-1];
i=i-1;
j=j-1;
}
else if(arrc[0][i-1]=='/')
{
arrd[j-2]=arrd[j-2]/arrd[j-1];
i=i-1;
j=j-1;
}
}
i=i-1;
}
else if (next->num.num2 =='(')/* 入棧 */
{
arrc[1][i]=next->flage;
arrc[0][i]=next->num.num2;
i++;
}
else if (next->flage !=0)/* 對運算復符的理 */
{
front:
if (i>0&&next->flage<arrc[1][i-1]&&arrc[1][i-1]!=3)
{
if (arrc[0][i-1]=='*')
{
arrd[j-2]=arrd[j-2]*arrd[j-1];
i=i-1;
j=j-1;
}
else if(arrc[0][i-1]=='/')
{
arrd[j-2]=arrd[j-2]/arrd[j-1];
i=i-1;
j=j-1;
}
goto front;
}
arrc[1][i]=next->flage;
arrc[0][i]=next->num.num2;
i++;
}
else
{
arrd[j]=next->num.num1; /* 對數字的理 */
j++;
}
next=next->p;
}
while(i!=0)/* 全部入棧之後對椎的外理 */
{
if (arrc[0][i-1]=='+')
{
arrd[j-2]=arrd[j-2]+arrd[j-1];
i=i-1;
j=j-1;
}
else if (arrc[0][i-1]=='-')
{
arrd[j-2]=arrd[j-2]-arrd[j-1];
i=i-1;
j=j-1;
}
else if (arrc[0][i-1]=='*')
{
arrd[j-2]=arrd[j-2]*arrd[j-1];
i=i-1;
j=j-1;
}
else if(arrc[0][i-1]=='/')
{
arrd[j-2]=arrd[j-2]/arrd[j-1];/* 1+2*3/4+5 5 ++ 1 1.5 */
i=i-1;
j=j-1;
}
}
printf("%lf\n",arrd[0]);
}
}
}

㈣ C語言:整數的運算

int型整數進行除法運算時自動向下取整,如:

a = 3,b = 4 則a/b = 0

a = 3, b = 2則a/b = 1

第一個算式意為對a/b向上取整:

(a+b-1)/b

第二個算式意為對a/b向下取整:

a/b

㈤ C語言中什麼是算術運算

七個

+ - * / % ++ --

加減乘除不用我說了吧

"%"求余,就是算除法,值是他的余數

"/"這個是除法,但是有一點注意,兩邊操作數全為整數時,值是取整的。

「++」是自加,比如說i++就是i的值自動加1,規則是i++是鮮賦值再自加,++i是先自加再賦值。舉個例子a=i++這個是先把i的值賦給a,然後i再自加。a=++i是i先自加,然後把自加之後的值賦給a。

「--」是自減,和自加的規則相同,只是值是自動減一。

C語言的運算符可分為以下幾類:
1. 算術運算符:用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種。
2. 關系運算符:用於比較運算。包括大於(>)、小於()、大於等於(>=)、小於等於(<=)和不等於(!=)六種。
3. 邏輯運算符:用於邏輯運算。包括與(&&)、或(||)、非(!)三種。
4. 位操作運算符:參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<>)六種。
5. 賦值運算符:用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。
6. 條件運算符:這是一個三目運算符,用於條件求值(?:)。
7. 逗號運算符:用於把若干表達式組合成一個表達式(,)。
8. 指針運算符:用於取內容(*)和取地址(&)二種運算。
9. 求位元組數運算符:用於計算數據類型所佔的位元組數(sizeof)。
10. 特殊運算符:有括弧(),下標[],成員(→,.)等幾種。

㈥ c語言中的整數計算

大數運算,自己實現寫個就可以的,給你寫了一個。

#include<stdio.h>
#include<string.h>
#defineMAX10001

intmax(intx,inty){
returnx>y?x:y;
}
voidswap(char*a,char*b){
chart=*a;
*a=*b;
*b=t;
}
voidreverse(char*str){
inti,len=strlen(str);
for(i=0;i<len/2;i++)
swap(&str[i],&str[len-1-i]);
}
voidaddBigInt(char*a,char*b,char*result){
inti;
intlenA=strlen(a);
intlenB=strlen(b);
intmaxLen=max(lenA,lenB)+1;

//cal
reverse(a);
reverse(b);

intjw=0,sum;
for(i=0;i<maxLen;i++){
sum=0;
if(i<lenA)
sum=sum+a[i]-'0';
if(i<lenB)
sum=sum+b[i]-'0';
sum+=jw;

jw=sum/10;
sum%=10;
result[i]='0'+sum;
}

for(i=maxLen-1;i>=0;i--)
if(result[i]=='0')
result[i]='';
else
break;

reverse(result);
reverse(a);
reverse(b);
}

intmain(){
chara[MAX],b[MAX],result[MAX];
scanf("%s%s",a,b);

addBigInt(a,b,result);
printf("%s+%s=%s",a,b,result);

return0;
}

㈦ 用C語言編寫(計算兩個整數的和、 差、積、商與余數

代碼一:

#include<stdio.h>

int main(void)

{

int num1, num2;

scanf("%d%d",&num1,&num2);

printf("%d + %d = %d ",num1,num2,num1+num2);

printf("%d - %d = %d ", num1, num2, num1-num2);

printf("%d * %d = %d ", num1, num2, num1*num2);

if (num2) printf("%d / %d = %g ", num1, num2, (double)num1/num2);

else printf("ERROR ,DIVBYZERO ");

printf("%d %% %d = %d ", num1, num2, num1%num2);

return 0;

}

代碼二:

#include <stdio.h>

void main()

{

int x, y;

printf("please enter a,b,c:");

scanf("%d,%d",&x,&y);

printf(" x+y=%d ",x+y);

printf("x-y=%d ",x-y);

printf("x*y=%d ",x*y);

printf("x/y=%d ",x/y);

printf("x%%y=%d ",x%y);

}

下圖為C語言算術運算符:

(7)整數算術運算c語言pta擴展閱讀:

算術運算符實例:

#include <stdio.h>

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++;

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

c = a--;

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

}

㈧ 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嗎?

㈨ 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語言兩個整型數的算術運算

第1空填 scanf("%d",&a);

第2空填 scanf("%d",&b);

第3空填 a+b;

第4空填 a-b;

第5空填 a*b;

第6空填 a/b;

第7空填 a%b;

第8空填 printf("差=%d ",sub);

第9空填 printf("積=%d ",mul);

第10空填 printf("商=%d ",div);

第11空填 printf("余數=%d ",oct);

完整的C語言程序如下

#include<stdio.h>

int main(void)

{

int a,b;//a和b是輸入的兩個整型值

int add,sub,mul,div,oct;//分別存放和,差,積,商,余數

scanf("%d",&a);//輸入a

scanf("%d",&b);//輸入b

add=a+b;//和

sub=a-b;//差

mul=a*b;//積

div=a/b;//商

oct=a%b;//余數

printf("和=%d ",add);//輸出和

printf("差=%d ",sub);//輸出差

printf("積=%d ",mul);//輸出積

printf("商=%d ",div);//輸出商

printf("余數=%d ",oct);//輸出余數

return 0;

}