当前位置:首页 » 编程语言 » 整数算术运算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;

}