当前位置:首页 » 编程语言 » 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吗?