c语言formula函数 r语言formula函数
c语言编一个四则运算程序,如(a+b)*(a-b)+c/d 然后由我随机输入四个字符 计算机就可进行运算
#include
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、雅安服务器托管、营销软件、网站建设、长寿网站维护、网站推广。
stdio.h
void
main(void)
{
int
a=0,b=0,c=0,d=0;
int
formula=0;
printf("请输入四个整数:\n");
scanf("%d
%d
%d
%d",a,b,c,d);
formula=(a+b)*(a-b)+c/d;
printf("%d\n",formula);
}
这是计算整数的
如果小数 就要把int
改为double或float
如果是字符就是要 char
求问C语言写一个float函数,其返回值和在函数内数值不同,是怎么回事
可能是语法不规范,导致的编译器的问题。
函数原型最好提前声明,特别是float强制转换成double的情况。
编译通过的代码贴在了Ubuntu pastebin中:链接
图片预览:
你可以通过这个网站在线验证一下:链接
求按要求用C语言作的一个计算器
计算器的c语言程序设计
一.功能概述:本程序能计算带二重括号的计算式的结果,如输入((3+2)*(3+2)+5)*((3+2)*(3+2)+5)*(5+5)= 将输出结果为9000
二.源程序:
#includestdio.h
int w;
double B[4][40];
shuru(char *pt)
{
int i=0,m;
do
{
*(pt+i)=getchar();
m=i;
i++;
}
while(*(pt+m)!='=');
*(pt+m)='+';
*(pt+m+1)='=';
}
tlchli(char *p)
{
int a,b;
if(*p=='-'||*p=='+')
{
for(b=0;*(p+b)!='=';b++)
;
for(;b=0;b--)
*(p+b+1)=*(p+b);
*p='0';
}
else
{
for(a=1;*(p+a)!='=';a++)
{
if(*(p+a)=='-'||*(p+a)=='+')
{
if(*(p+a-1)=='('*(p+a+1)='0'*(p+a+1)='9')
{
for(b=0;*(p+a+b)!='=';b++)
;
for(;b=0;b--)
*(p+a+b+1)=*(p+a+b);
*(p+a)='0';
a=(a+1);
}
}
}
}
}
jgh(double B[4][40],char *p)
{
int a,b,c=0,d,e,f,h,i,k,n,m;
double g=0,j=0;
for(a=0;a4;a++)
for(b=0;b40;b++)
B[a]=0;
for(d=0;*(p+d)!='=';d++)
{
if(*(p+d)=='+'||*(p+d)=='-'||*(p+d)=='*'||*(p+d)=='/')
{
if(*(p+d)=='+') B[3][c]='+';
if(*(p+d)=='-') B[3][c]='-';
if(*(p+d)=='*') B[3][c]='*';
if(*(p+d)=='/') B[3][c]='/';
if(*(p+d-1)==')'*(p+d-2)==')')
{
B[0][c]=')';
B[1][c]=')';
}
if(*(p+d-1)==')'*(p+d-2)!=')')
B[1][c]=')';
for(e=d-1;*(p+e)'0'||*(p+e)'9';e--)
;
for(f=e;*(p+f)!='.'(f0)*(p+f)='0'*(p+f)='9';f--)
;
if(*(p+f)=='.')
{
for(h=f-1;(h=0)*(p+h)='0'*(p+h)='9';h--)
;
h++;
if(*(p+h-1)=='('*(p+h-2)=='(')
{
B[0][c]='(';
B[1][c]='(';
}
if(*(p+h-1)=='('*(p+h-2)!='(')
B[1][c]='(';
for(i=h;*(p+i)='0'*(p+i)='9';i++)
g=(*(p+i)-48)+g*10.0;
for(k=f+1;*(p+k)='0'*(p+k)='9';k++)
;
k--;
for(n=k;*(p+n)='0'*(p+n)='9';n--)
j=(j/10.0+(*(p+n)-48)/10.0);
B[2][c]=(g+j);
g=j=0;
}
else
{
for(m=e;*(p+m)='0'*(p+m)='9';m--);
m++;
if(*(p+m-1)=='('*(p+m-2)=='(')
{
B[0][c]='(';
B[1][c]='(';
}
if(*(p+m-1)=='('*(p+m-2)!='(')
B[1][c]='(';
for(i=m;*(p+i)='0'*(p+i)='9';i++)
g=(*(p+i)-48)+g*10.0;
B[2][c]=g;
g=0;
}
c++;
}
}
w=(c-1);
}
qkh1(double B[4][40])
{
int a=1,b,c,d,e,f,j,k;
for(b=0;bw;b++)
{
if(B[a]=='(')
{
for(c=b;B[a][c]!=')';c++)
;
for(d=b+1;B[a][d]!='('dc;d++)
;
if(B[a][d]=='(')
k=d;
else
k=b;
B[a][k]=0;B[a][c]=0;
for(e=k;ec;e++)
{
if(B[3][e]=='*')
{
B[2][e+1]=B[2][e]*B[2][e+1];
if(B[3][e-1]=='-'(e0))
{
B[2][e]=0;
B[3][e]='-';
}
else
{
B[2][e]=0;
B[3][e]='+';
}
}
if(B[3][e]=='/')
{
B[2][e+1]=B[2][e]/B[2][e+1];
if(B[3][e-1]=='-'e0)
{
B[2][e]=0;
B[3][e]='-';
}
else
{
B[2][e]=0;
B[3][e]='+';
}
}
}
for(f=k;fc;f++)
{
if(B[3][f]=='+')
{
B[2][f+1]=B[2][f]+B[2][f+1];
B[2][f]=0;B[3][f]='+';
}
if(B[3][f]=='-')
{
B[2][f+1]=B[2][f]-B[2][f+1];
B[2][f]=0;B[3][f]='+';
}
}
b=c-1;
if(B[3][k-1]=='*'k0)
{
for(;kc;k++)
{
B[3][k]='*';
B[2][k]=1.0;
}
}
if(B[3][k-1]=='/'k0)
{
for(;kc;k++)
{
B[3][k]='/';
B[2][k]=1.0;
}
}
}
}
for(j=0;j=w;j++)
{
if(B[1][j]!='('B[1][j]!=')')
B[1][j]=B[0][j];
}
}
qkh2(double B[4][40])
{
int a,b,c,d,e,f,j;
for(b=0;bw;b++)
{
if(B[1]=='(')
{
for(c=b;B[1][c]!=')';c++)
;
B[1]=0;B[1][c]=0;
for(e=b;ec;e++)
{
if(B[3][e]=='*')
{
B[2][e+1]=B[2][e]*B[2][e+1];
if(B[3][e-1]=='-'(e0))
{
B[2][e]=0;
B[3][e]='-';
}
else
{
B[2][e]=0;
B[3][e]='+';
}
}
if(B[3][e]=='/')
{
B[2][e+1]=B[2][e]/B[2][e+1];
if(B[3][e-1]=='-'(e0))
{
B[2][e]=0;
B[3][e]='-';
}
else
{
B[2][e]=0;
B[3][e]='+';
}
}
}
for(f=b;fc;f++)
{
if(B[3][f]=='+')
{
B[2][f+1]=B[2][f]+B[2][f+1];
B[2][f]=0;B[3][f]='+';
}
if(B[3][f]=='-')
{
B[2][f+1]=B[2][f]-B[2][f+1];
B[2][f]=0;B[3][f]='+';
}
}
if(B[3][b-1]=='*'b0)
{
for(;bc;b++)
{
B[3]='*';
B[2]=1.0;
}
}
if(B[3][b-1]=='/'b0)
{
for(;bc;b++)
{
B[3]='/';
B[2]=1.0;
}
}
}
}
}
jshjg(double B[4][40])
{
int b,d,e,f;
for(e=0;ew;e++)
{
if(B[3][e]=='*')
{
B[2][e+1]=B[2][e]*B[2][e+1];
if(B[3][e-1]=='-'e0)
{
B[2][e]=0;
B[3][e]='-';
}
else
{
B[2][e]=0;
B[3][e]='+';
}
}
if(B[3][e]=='/')
{
B[2][e+1]=B[2][e]/B[2][e+1];
if(B[3][e-1]=='-'e0)
{
B[2][e]=0;
B[3][e]='-';
}
else
{
B[2][e]=0;
B[3][e]='+';
}
}
}
for(f=0;fw;f++)
{
if(B[3][f]=='+')
{
B[2][f+1]=B[2][f]+B[2][f+1];
B[2][f]=0;B[3][f]='+';
}
if(B[3][f]=='-')
{
B[2][f+1]=(B[2][f]-B[2][f+1]);
B[2][f]=0;B[3][f]='+';
}
}
}
shuchu(double B[4][40],char *p)
{
printf("answer %f\n",B[2][w]);
}
main()
{
char *p,A[100];
shuru(A);
p=A[0];
tlchli(p);
jgh(B,p);
qkh1(B);
qkh2(B);
jshjg(B);
shuchu(B,p);
}
#include"string.h"
#include"graphics.h"
#include"conio.h"
#include"dos.h"
#include"time.h"
#include"stdlib.h"
#include"stdio.h"
#include"math.h"
/*调用一系列的库函数*/
int py;/*定义一个全局变量*/
void mode(int py)/*mode函数,用来设置的,来使用计算器的多种运算功能*/
{ double x1,x2,ans,ans2;
if(py11)
{ printf("input x1,x2:");
scanf("%lf,%lf",x1,x2); }
else {printf("input x:");scanf("%lf",x1);}
switch(py)
{ case 6 : ans=x1+x2;printf("=%.3lf",ans);break;
case 7 : ans=x1-x2;printf("=%.3lf",ans);break;
case 8 : ans=x1*x2;printf("=%.3lf",ans);break;
case 9 : ans=x1/x2;printf("=%.3lf",ans);break;
case 10 : ans=pow(x1,x2);printf("x^%.1lf=%.3lf",x2,ans);break;
case 11 : ans=sqrt(x1);printf("=%.3lf",ans);break;
case 12 : ans=sin(x1);ans2=cos(x1);printf("sin x=%.3lf,cos x=%.3lf",ans,ans2);break;
case 13 : ans=asin(x1);ans2=acos(x1);printf("asin x=%.3lf,acos x=%.3lf",ans,ans2);break;
}
getch();clrscr();
}
int join(char *ps) /*join函数是输入用户名和密码的,可于已注册的用户进行匹配,注册用户可使用高级功能*/
{ char name[30],pass[20];
int len,i;
printf("ID:");
scanf("%s",name);
printf("\npass word:");
scanf("%s",pass);
clrscr();
for(i=0;istrlen(ps);i++)
if(pass[i]!=*(ps+i)) return 0;
return 1;
}
int menu(int pass)/*menu函数,菜单*/
{int py=6;char key=0;
gotoxy(1,4);
printf("MENU\n\n");
printf("ADD +\n");
printf("SUB -\n");
printf("MUL *\n");
printf("DIV /");
gotoxy(10,6);printf("-");
if(pass) {gotoxy(1,10);printf("INV ^\n");
printf("EVO ~\n");
printf("SIN COS\n");
printf("ASIN ACOS\n");
printf("modify\n");
printf("QUIT"); }
else {gotoxy(1,10);printf("QUIT");}
while(key!=13) /*以下都是控制选择箭头的位子的语句*/
{ key=getch();
switch(key)
{ case 80 : gotoxy(10,py);printf(" ");if(!pass) py=py%5+6; else {++py;if(py==16) py=6;}break;
case 72 : gotoxy(10,py);printf(" ");--py; if(py==5) py=10+5*pass; break;
}
gotoxy(10,py);printf("-");
}
return py;
}
main() /*主函数,关于函数分配和开始动画的语句*/
{ int gd=DETECT,gm,x=320,y=10,i,l=10,h=10,t,co=3,v=0;
int pass;
FILE *fp;char ps[20];
initgraph(gd,gm,"");/*初始化图形模式*/
registerbgidriver(EGAVGA_driver);
for(i=1;i31;co=(co++%10),v++,y+=2+v,i++)
{ delay(9e10);cleardevice();
setcolor(co);
setfillstyle(1,co);
sector(x,y,0,360,l,h);/*画圆*/
}
for(i=1;i300;i++)
{ setcolor(i%10);
circle(x,y,i);
delay(1000);/*延时*/
}
cleardevice();/*清屏*/
closegraph();
fp=fopen("file1","r");
if(fp==NULL) pass=1;
else {fgets(ps,20,fp);
pass=join(ps);}
ld: py=menu(pass);
if(py==pass*5+10) {clrscr();printf("bye bye!");getch();return 0;}
else if(py!=14){clrscr();mode(py);} else { fp=fopen("file1","w");
printf("\npass word:");
scanf("%s",ps);
fputs(ps,fp);
fclose(fp); getch();clrscr();
}
goto ld; /*函数内跳转*/
}
#include stdio.h /*库函数*/
struct s_node
{
int data;
struct s_node *next;
};
typedef struct s_node s_list;
typedef s_list *link;
link operator=NULL;
link operand=NULL;
link push(link stack,int value)
{
link newnode;
newnode=(link) malloc(sizeof(s_list));
if(!newnode)
{
printf("\nMemory allocation failure!!!");
return NULL;
}
newnode-data=value;
newnode-next=stack;
stack=newnode;
return stack;
}
link pop(link stack,int *value)
{
link top;
if(stack !=NULL)
{
top=stack;
stack=stack-next;
*value=top-data;
free(top);
return stack;
}
else
*value=-1;
}
int empty(link stack)
{
if(stack==NULL)
return 1;
else
return 0;
}
int is_operator(char operator)
{
switch (operator)
{
case '+': case '-': case '*': case '/': return 1;
default:return 0;
}
}
int priority(char operator)
{
switch(operator)
{
case '+': case '-' : return 1;
case '*': case '/' : return 2;
default: return 0;
}
}
int two_result(int operator,int operand1,int operand2)
{
switch(operator)
{
case '+':return(operand2+operand1);
case '-':return(operand2-operand1);
case '*':return(operand2*operand1);
case '/':return(operand2/operand1);
}
}
void main()
{
char expression[50];
int position=0;
int op=0;
int operand1=0;
int operand2=0;
int evaluate=0;
printf("\nPlease input the inorder expression:");
gets(expression);
while(expression[position]!='\0'expression[position]!='\n')
{
if(is_operator(expression[position]))
{
if(!empty(operator))
while(priority(expression[position])= priority(operator-data)
!empty(operator))
{
operand=pop(operand,operand1);
operand=pop(operand,operand2);
operator=pop(operator,op);
operand=push(operand,two_result(op,operand1,operand2));
}
operator=push(operator,expression[position]);
}
else
operand=push(operand,expression[position]-48);
position++;
}
while(!empty(operator))
{
operator=pop(operator,op);
operand=pop(operand,operand1);
operand=pop(operand,operand2);
operand=push(operand,two_result(op,operand1,operand2));
}
operand=pop(operand,evaluate);
printf("The expression [%s] result is '%d' ",expression,evaluate);
getch();
}
求教C语言大神!!!
scanf("%d,n); 漏了一个双引号,应该改成scanf("%d",n);
其实代码没什么别的问题了,如果你说程序直接退出了,应该就是你输入scanf以后输入的回车被getchar()读到了。可以在return 0; 之前加一句system("pause"); 加上头文件#include stdlib.h
网页名称:c语言formula函数 r语言formula函数
文章出自:http://azwzsj.com/article/docogdc.html