刚写完,这个程序很多冗余的,考虑到你提的是这样的简单问题就给你一一写明了。
#include
#include
int func1()
{
int a,b,c,d,e,f,g,h,i,j,marks=0;
printf("这是一年级学生的10个算术题:\n");
printf("1+6=");
scanf("%d",&a);
if(a==7)
marks++;
printf("2+3=");
scanf("%d",&b);
if(b==5)
marks++;
printf("3+8=");
scanf("%d",&c);
if(c==11)
marks++;
printf("4+6=");
scanf("%d",&d);
if(d==10)
marks++;
printf("9+6=");
scanf("%d",&e);
if(e==15)
marks++;
printf("3+5=");
scanf("%d",&f);
if(f==8)
marks++;
printf("2+6=");
scanf("%d",&g);
if(g==8)
marks++;
printf("9+5=");
scanf("%d",&h);
if(h==14)
marks++;
printf("7+6=");
scanf("%d",&i);
if(i==13)
marks++;
printf("7+8=");
scanf("%d",&j);
if(j==15)
marks++;
return marks;
}
int func2()
{
int a,b,c,d,e,f,g,h,i,j,marks=0;
printf("这是二年级学生的10个算术题:\n");
printf("11+15=");
scanf("%d",&a);
if(a==26)
marks++;
printf("25+14=");
scanf("%d",&b);
if(b==39)
marks++;
printf("57+16=");
scanf("%d",&c);
if(c==73)
marks++;
printf("35+47=");
scanf("%d",&d);
if(d==82)
marks++;
printf("35+46=");
scanf("%d",&e);
if(e==81)
marks++;
printf("29+59=");
scanf("%d",&f);
if(f==88)
marks++;
printf("38+91=");
scanf("%d",&g);
if(g==129)
marks++;
printf("28+56=");
scanf("%d",&h);
if(h==84)
marks++;
printf("13+47=");
scanf("%d",&i);
if(i==60)
marks++;
printf("65+23=");
scanf("%d",&j);
if(j==88)
marks++;
return marks;
}
int func3()
{
int a,b,c,d,e,f,g,h,i,j,marks=0;
printf("这是三年级学生的10个算术题:\n");
printf("156+123");
scanf("%d",&a);
if(a==279)
marks++;
printf("156+125");
scanf("%d",&b);
if(b==281)
marks++;
printf("99+46=");
scanf("%d",&c);
if(c==145)
marks++;
printf("138+59=");
scanf("%d",&d);
if(d==197)
marks++;
printf("99+564=");
scanf("%d",&e);
if(e==663)
marks++;
printf("39+87=");
scanf("%d",&f);
if(f==126)
marks++;
printf("456+741=");
scanf("%d",&g);
if(g==1207)
marks++;
printf("58+32=");
scanf("%d",&h);
if(h==90)
marks++;
printf("235+582=");
scanf("%d",&i);
if(i==827)
marks++;
printf("142+85=");
scanf("%d",&j);
if(j==227)
marks++;
return marks;
}
void main()
{
int marks1=0,marks2=0,marks3=0,i=1;
int flag;
while(i)
{
printf("请输入你要测试的年级:\n");
printf("1:表示测试一年级,2:表示测试二年级,3:表示测试三年级,0:表示退出。\n");
scanf("%d",&flag);
switch(flag)
{
case 1:
marks1=func1();
printf("%d",10*marks1);
break;
case 2:
marks1=func2();
printf("%d",10*marks2);
break;
case 3:
marks1=func3();
printf("%d",10*marks3);
break;
case 0:
i=0;
break;
}
}
}
这道题有很大难度,我想了很久,只做出一年级的题,你提的要求很多都没有达到,望见晾~~~~~~~~~~~~~~下面是答案:
#include
#include
#include
#include
#define ExerNumber 10
void test()
{
int algType=0,
points=0,
num1=0,
num2=0,
result=0,
answer=0,
i;
clrscr();
printf("这是一年级学生的10个算术题:");
srand(time(00));
for(i=1;i<=ExerNumber;++i)
{
num1=rand()%10;
num2=rand()%10;
algType=rand()%2+1;
switch(algType)
{
case 1:
result=num1+num2;
printf("\n%d+%d",num1,num2);break;
case 2:
if(num1>num2)
{
result=num1-num2;
printf("\n%d-%d",num1,num2);break;
}
else
{
result=num2-num1;
printf("\n%d-%d",num2,num1);break;
}
}
printf("=");
scanf("%d",&answer);
if(result==answer)
{
points+=10;
}
}
printf("\n你的成绩得:");
printf("%d分",points);
}
void main()
{
char yesOrno;
test();
while(1)
{
printf("\n你要继续吗(y/n)?");
yesOrno=getchar();
if(yesOrno=='n' || yesOrno=='N')
{
exit(0);
}
if(yesOrno=='y' || yesOrno=='Y')
{
test();
}
}
}
帮不了你。分数浪费了。