#include<stdioh>
#include<stdlibh>
#include<timeh>
#include<stringh>
int scan()
{
char s[100];
int i,t,z=0;
do
{
z=0;
gets(s);
for(i=0;s[i]!='\0';i++)
if(s[i]<'0' || s[i]>'9') break;
if(i>=strlen(s))
for(t=0;s[t]!='\0';t++)
z=z10+((int)s[t]-48);
else
printf("您的输入有误,请重新输入");
}
while(i<strlen(s));
return(z);
}
int x=1,y=1,choice=0,sum=0,right=0,z=0,answer;
float precent;
char fuhao;
void suiji()
{
srand(time(NULL));
x=rand()%100+1;
y=rand()%100+1;
}
void choose()
{
int yunsuan(int,int,int);
if(sum==0) precent=00;
else precent=(float)right/sum;
printf("\n如需进行加减乘除运算测试,请分别输入1、2、3、4\n");
printf("如需退出请输入5\n");
choice=scan();
switch(choice)
{
case 1:printf("欢迎来到加法运算测试系统,如需退出请输入9999\n");fuhao='+';break;
case 2:printf("欢迎来到减法运算测试系统,如需退出请输入9999\n");fuhao='-';break;
case 3:printf("欢迎来到乘法运算测试系统,如需退出请输入9999\n");fuhao='';break;
case 4:printf("欢迎来到除法运算测试系统,如需退出请输入9999\n");fuhao='/';break;
case 5:printf("本次测试愉快,欢迎下次再来测试\n");
printf("本次共做%d道题,其中%d道正确,正确率为%f\n",sum,right,precent);
break;
default:printf("您的输入有误,请重新输入\n");choose();
}
}
int ans(int x,int y,int choice)
{
switch(choice)
{
case 1:z=x+y;break;
case 2:z=x-y;break;
case 3:z=xy;break;
case 4:z=x/y;break;
}
return(z);
}
void yunsuan()
{
suiji();
printf("%d%c%d=",x,fuhao,y);
z=ans(x,y,choice);
answer=scan();
if(z==answer)
{
printf("正确\n");
right++;sum++;
yunsuan();
}
else if(answer==9999) choose();
else
{
printf("不正确, 正确答案为%5d\n",z);
sum++;
yunsuan();
}
}
void main()
{
printf("欢迎来到四则运算测试系统\n");
choose();
while(choice!=5)
yunsuan();
}
#include<iostream>
using namespace std;
main()
{ double x,y;
cout<<"请输入一个值X:\n"<<"x=";
cin>>x;
if(x<7) y=xx+1;
else if(x==7) y=10;
else if(x>7&&x<=12) y=2x+1;
else y=xxx-1;
cout<<"y="<<y<<endl;
}
/stackh/
typedef char flag;
#define NEW_STACK(STACK_NAME,TYPE) \
struct STACK_NAME \
{ \
TYPEb;TYPEh;int size; \
\
flag init(STACK_NAME in) \
{ \
if(!(in->b=(TYPE)malloc(10sizeof(TYPE))))return 0; \
in->size=10sizeof(TYPE); \
in->h=in->b; \
return 1; \
\
} \
flag isnull(STACK_NAMEin) \
{ \
if(in->b==in->h) \
return 1; \
else \
return 0; \
} \
flag pop(STACK_NAMEin,TYPE a) \
{ \
if(isnull(in))return 0; \
a=(--in->h); \
return 1; \
\
} \
flag push(STACK_NAMEin,TYPE a) \
{ \
if(in->h-in->b>=in->size) \
{ \
if(!(in->b=(TYPE)realloc(in->b,in->size+10sizeof(TYPE))))return 0; \
in->h=in->b+in->size; \
in->size+=10sizeof(TYPE); \
} \
(in->h)=a; \
in->h++; \
return 1; \
} \
\
TYPE gettop(STACK_NAMEin) \
{ \
TYPEa=in->h-1; \
return a; \
} \
};
/源文件/
include<stdioh>
#include<stdlibh>
#include<stringh>
#include<mathh>
#include"stackh"
#define isnum(n) ((n>='0'&&n<='9')||n=='')
NEW_STACK(csta,char)
NEW_STACK(dsta,double)
/precede block/
int ctoiex(char a)
{
int b;
if (a==')') b=1;
if(a=='+'||a=='-')b=2;
if(a==''||a=='/')b=3;
if(a=='(')b=4;
if(a=='#')b=0;
return b;
}
char precede(char a,char b)
{
int a1=ctoiex(a);
int b1=ctoiex(b);
if((a1==4&&b1==1)||((a1==0)&&(b1==0)))return '=';
if(a1>=b1) return '>';
else return '<';
}
double atonum(chara,int len)
{
int inum=0;
double dnum=0;
char f=1;
int j=1;
for (int i=0;i<len;i++)
{
if(a[i]=='')
{
f=0;
continue;
}
if(f)inum=inum10+(a[i]-'0');
else dnum=dnum+(a[i]-'0')pow(01,j++);
}
return inum+dnum;
}
double operate(double a,double b,char op)
{
double c;
switch(op)
{
case '+':c=a+b;break;
case '-':c=a-b;break;
case '':c=ab;break;
case '/':c=a/b;break;
}
return c;
}
void insert(chara)
{
int len=strlen(a);
a[len]='#';
a[len+1]=0;
}
int main()
{
csta optr;dsta opnd;
optrinit(&optr);opndinit(&opnd);
optrpush(&optr,'#');
char s[200];
char b[20];
char c;
char tmp1='1';
double op1,op2;
char f=0;
printf("请输入公式: ");
scanf("%s",s);
insert(s);
for(int i=0,j=0;tmp1!='#'||optrgettop(&optr)!='#';)
{
if(isnum(tmp1))
{
b[j++]=s[i++];
tmp1=s[i];
}
else
{
if(f!='>')
{
opndpush(&opnd,atonum(b,j));
j=0;
}
switch(f=precede(optrgettop(&optr),tmp1))
{
case '<':
optrpush(&optr,tmp1);tmp1=s[++i];break;
case '=':
optrpop(&optr,&c);tmp1=s[++i];break;
case '>':
optrpop(&optr,&c);
opndpop(&opnd,&op1);
opndpop(&opnd,&op2);
opndpush(&opnd,operate(op2,op1,c));
break;
}
}
}
printf("\n%f\n",opndgettop(&opnd));
return 0;
}
以上就是关于C语言 四则运算程序 高手帮帮忙!!!!全部的内容,包括:C语言 四则运算程序 高手帮帮忙!!!!、C语言作业2.用程序实现输入一个x值,计算分段函数的值。、求C++大神帮忙编简单的四则运算练习题程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)