c语言编程 100以内的整数四则运算测试程序设计
发布网友
发布时间:2022-04-23 00:32
我来回答
共3个回答
热心网友
时间:2022-04-27 05:38
完美!请看我的作品:
#include
<stdio.h>
#include
<time.h>
#include
<stdlib.h>
#include
<conio.h>
#define
N
10
typedef
struct
_ti
{
int
a,
b;
int
op;
int
result;
int
input;
int
rw;
}ti;
ti
timu[N];
int
fen;
int
flag;
int
mulu()
{
int
s;
while(1)
{
printf("\t\t欢迎进入super考试系统\n\n");
printf("1)随机出题\t\t\t\t");
printf("2)开始考试\n");
printf("3)试卷评分\t\t\t\t");
printf("4)显示批改的试卷\n");
printf("5)退出系统\n\n");
printf("请做出选择:");
scanf("%d",
&s);
while(getchar()
!=
'\n');
if(s
<
1
||
s
>
5)
printf("选择有误!请重新输入.\n");
else
break;
}
return
s;
}
void
chuti()
{
int
i,
f;
printf("确认随机出%d道题吗?(y确认):",
N);
if(getchar()
!=
'y')
return;
for(i
=
0,
f
=
1;
i
<
N;
f
?
i++
:
0)
{
timu[i].a
=
rand()
%
100+1;
timu[i].b
=
rand()
%
100+1;
timu[i].op
=
rand()
%
4;
if(timu[i].b
==
0
&&
timu[i].op
==
3)
{
f
=
0;
continue;
}
else
f
=
1;
switch(timu[i].op)
{
case
0:
timu[i].result
=
timu[i].a
+
timu[i].b;break;
case
1:
timu[i].result
=
timu[i].a
-
timu[i].b;break;
case
2:
timu[i].result
=
timu[i].a
*
timu[i].b;break;
case
3:
timu[i].result
=
timu[i].a
/
timu[i].b;break;
}
}
printf("出题完毕!\n");
flag
=
1;
}
热心网友
时间:2022-04-27 06:56
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define STEP 3 //最大阶,3+2=5
int question(int ans[])
{
int i,j,k,n,m,x=0;
int ques[10],temp[10]={0};
srand(time(NULL));
for(i=0;i<10;i++)
{
printf("(%d)",i+1);
m=(rand()%STEP+2); //m,阶数,就是计算的个数
for(j=0;j<2*m-1;j=j+2) //随机生成计算数
ques[j]=(rand()%100+1);
for(j=1;j<2*m-2;j+=2) //随机生成运算符,代表
ques[j]=(rand()%4+1);
for(j=0;j<2*m-1;j++)//输出式
{
if(0==j%2)
printf("%d",ques[j]);
else
{
switch(ques[j])
{
case 1:printf("+");break;
case 2:printf("-");break;
case 3:printf("*");break;
case 4:printf("/");break;
}
}
}
printf("=?\n");//下面,计算答案
n=2*m-1;//总元素个数
for(j=1;j<(2*m-2);)//先算乘除
{
if(3==ques[j])
{
ques[j-1]=ques[j-1]*ques[j+1];
for(k=j;k<2*m-3;k++)
ques[k]=ques[k+2];
j++;
n-=2;
ques[k]=0;
ques[k+1]=0;
}
else if(4==ques[j])
{
ques[j-1]=ques[j-1]/ques[j+1];
for(k=j;k<2*m-3;k++)
ques[k]=ques[k+2];
j++;
n-=2;
ques[k]=0;
ques[k+1]=0;
}
else j=j+2;
}
for(j=1;j<n-1;j+=2)//如果ques[j]是-,那么ques[j+1]就是负的
{
if(2==ques[j])
ques[j+1]*=-1;
}
for(j=0;j<n;j+=2)//全部相加为答案
ans[x]+=ques[j];
x++;
}
}
int answer(int ans[])
{
int i,j,n,m=0;
for(i=0;i<10;i++)
{
printf("(%d):",i+1);//输入对应题答案
scanf("%d",&n);getchar();
if(n==ans[i])
{
printf("right!\n");
m++;
}
else
printf("wrong ,the right answer is %d\n",ans[i]);
}
printf("You have answer %d right,the score of you is %d\n",m,m*10);
}
int list_ans(int ans[])
{
int i;
for(i=0;i<10;i++)
printf("(%d):%d \n",i+1,ans[i]);
}
int main()
{
int i,j,k,n,flag=0;
int ans[11]={0};
char ch;
printf("(1)ask\n(2)answer\n(3)list_answer\n");
while(1)
{
scanf("%d",&n);getchar();
if(n==1)
{
question(ans);
flag=1;
}
else if(n==2&&flag)
answer(ans);
else if(n==3&&flag)
{
list_ans(ans);
printf("Continue or not(Y/N)?\n");
scanf("%c",&ch);
if(ch=='n'||ch=='N')
break;
}
else
printf("input error\n");
}
}
热心网友
时间:2022-04-27 08:31
你想把人当骡子用啊?