#include <stdio.h>
#include<time.h>
#include<stdlib.h>
int count=0;
void Ti(int n,int a[]);
int main()
{
int n;
int a[100];
printf("请输入题目的个数:");
scanf("%d",&n);
Ti(n,a);
printf("
回答正确的个数为:%d
错误的个数为:%d
",count,n-count);
return 0;
}
void Ti(int n,int a[])
{
int l;
int p;
int i,j,h,hh,k,g;
int f;
int b[100];
float x,y,c[100],d[100];
for(p=0;p<n;p++)
{
srand(time(NULL));
i=(int)rand()%10;
j=(int)rand()%10;
h=(int)rand()%10;
hh=(int)rand()%10;
g=(int)rand()%3;
f=((int)rand()%100)-100;
k=(int)rand()%6;
switch(k)
{
case 0:
printf("%d+%d=
",i,j);
printf("请作答:");
scanf("%d",&b[p]);
a[p]=i+j;
if(a[p]==b[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%d
",a[p]);
}
break;
case 1:
printf("%d-%d=
",i,j);
printf("请作答:");
scanf("%d",&b[p]);
a[p]=i-j;
if(a[p]==b[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%d
",a[p]);
}
break;
case 2:
printf("%d*%d=
",i,j);
printf("请作答:");
scanf("%d",&b[p]);
a[p]=i*j;
if(a[p]==b[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%d
",a[p]);
}
break;
case 3:
if(j==0)
{
p--;
break;
}
else{
x=(float)i;
y=(float)j;
printf("%d/%d=
",i,j);
printf("请作答:");
scanf("%f",&d[p]);
c[p]=x/y;
if(c[p]==d[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%.2f
",c[p]);
}
break;
}
case 4:
printf("%d!=
",i);
printf("请作答:");
scanf("%d",&b[p]);
if(i==0)
a[p]=1;
else
{
a[p]=1;
for(l=1;l<=i;l++)
a[p]=a[p]*l;
}
if(a[p]==b[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%d
",a[p]);
}
break;
case 5:
if(j==0)
{
p--;
break;
}
else
{
x=(float)i;
y=(float)j;
switch(g){
case 0:
printf("(%d/%d+%d)*%d=
",i,j,h,hh);
printf("请作答:");
scanf("%f",&d[p]);
c[p]=(x/y+h)*hh;
break;
case 1:
printf("(%d+%d*%d)=
",h,i,j);
printf("请作答:");
scanf("%f",&d[p]);
c[p]=h+x*y;
break;
case 2:
printf("%d*(%d)=
",i,f);
printf("请作答:");
scanf("%f",&d[p]);
c[p]=x*(f);
break;
}
if(c[p]==d[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%.2f
",c[p]);
}
break;
}
}
}
}
本程序在VC++6.0开发环境下调试的。
- 程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66,或保持分数形式:8/3。
- 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8。
- 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数。
- 程序可以出单个整数阶乘的题目:如:4!=24。
结对同伴的学号姓名:201306114457,叶鹏 博客地址:http://www.cnblogs.com/yeyepengpeng/
我做了:完成程序基本功能与1和4功能,负责敲打代码,测试和修改。
同伴做了:上述2和3的功能,搜集查阅资料,负责指正修改程序,提出修改和改进方案。
总结:通过这次实验使我复习了以前我学到的知识,并且使我更加掌握以前的知识。实验中我感觉到两个人一起结对做程序是一种快乐,同时也弥补了我一个人独自写程序的那种粗心大意,同伴的提醒使我更加的细心与谨慎,通过实验我更加的明白团队的重要性,不仅能提高我的个人能力,同时也能使他人也得到能力的提升。
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
int count=0;
void Ti(int a[]);
void JX(int a[]);
void KH(int a[]);
int main()
{
int a[100];
int m;
do
{
printf(" --------------
");
printf(" 1.简单的运算.
");
printf(" 2.含括号的运算.
");
printf(" 3.阶乘的运算.
");
printf(" 0.退出.
");
printf(" --------------
");
printf("请选择:");
scanf("%d",&m);
switch(m)
{
case 1:
Ti(a);
break;
case 2:
KH(a);
break;
case 3:
JX(a);
break;
}
}while(m!=0);
return 0;
}
void Ti(int a[])
{
int n,p;
int i,j,k;
int b[100];
float x,y,c[100],d[100];
count=0;
printf("请输入题目的个数:");
scanf("%d",&n);
for(p=0;p<n;p++)
{
srand(time(NULL));
i=(int)rand()%10;
j=(int)rand()%10;
k=(int)rand()%4;
switch(k)
{
case 0:
printf("%d+%d=
",i,j);
printf("请作答:");
scanf("%d",&b[p]);
a[p]=i+j;
if(a[p]==b[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%d
",a[p]);
}
break;
case 1:
printf("%d-%d=
",i,j);
printf("请作答:");
scanf("%d",&b[p]);
a[p]=i-j;
if(a[p]==b[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%d
",a[p]);
}
break;
case 2:
printf("%d*%d=
",i,j);
printf("请作答:");
scanf("%d",&b[p]);
a[p]=i*j;
if(a[p]==b[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%d
",a[p]);
}
break;
case 3:
if(j==0)
{
p--;
break;
}
else
{
x=(float)i;
y=(float)j;
printf("%d/%d=
",i,j);
printf("请作答:");
scanf("%f",&d[p]);
c[p]=x/y;
if(c[p]==d[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%.2f
",c[p]);
}
break;
}
}
}
printf("
回答正确的个数为:%d
错误的个数为:%d
",count,n-count);
}
void KH(int a[])
{
int n;
int i,j,h,hh,g;
float x,y,c[100],d[100];
int p;
int f;
count=0;
printf("请输入题目的个数:");
scanf("%d",&n);
for(p=0;p<n;p++)
{
srand(time(NULL));
i=(int)rand()%10;
j=(int)rand()%10;
h=(int)rand()%10;
hh=(int)rand()%10;
g=(int)rand()%3;
f=((int)rand()%100)-100;
if(j==0)
{
p--;
continue;
}
else
{
x=(float)i;
y=(float)j;
switch(g)
{
case 0:
printf("(%d/%d+%d)*%d=
",i,j,h,hh);
printf("请作答:");
scanf("%f",&d[p]);
c[p]=(x/y+h)*hh;
break;
case 1:
printf("(%d+%d*%d)=
",h,i,j);
printf("请作答:");
scanf("%f",&d[p]);
c[p]=h+x*y;
break;
case 2:
printf("%d*(%d)=
",i,f);
printf("请作答:");
scanf("%f",&d[p]);
c[p]=x*(f);
break;
}
if(c[p]==d[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%.2f
",c[p]);
}
}
}
printf("
回答正确的个数为:%d
错误的个数为:%d
",count,n-count);
}
void JX(int a[])
{
int b[100];
int p;
int l;
int i;
int n;
count=0;
printf("请输入题目的个数:");
scanf("%d",&n);
for(p=0;p<n;p++)
{
srand(time(NULL));
i=(int)rand()%10;
printf("%d!=
",i);
printf("请作答:");
scanf("%d",&b[p]);
if(i==0)
a[p]=1;
else
{
a[p]=1;
for(l=1;l<=i;l++)
a[p]=a[p]*l;
}
if(a[p]==b[p])
{
printf("回答正确!
");
count++;
}
else
{
printf("回答错误!
");
printf("正确答案为:%d
",a[p]);
}
}
printf("
回答正确的个数为:%d
错误的个数为:%d
",count,n-count);
}