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