C语言:给小学生编写练习20以内加、减法计算的程序。

(1)给小学生编写练习20以内加、减法计算的程序。
可参考:
主函数:计算机提示学生选择进行加法还是减法运算 (将得到的运算符传给函数一) ;重复出题,最多做100道题,学生也可以中途退出;两种情况均视为测验结束,计算机应显示:所做题目的总数,做对的题数,做错的题数,和最后得分。
函数一,出题:计算机随机给出两个20以内的数(计算机要保证参与运算的数和运算结果都在20以内,且不能小于0)结合运算符将题目输出到屏幕上;将计算结果返回,并传给函数二;
函数二,判断:提示学生输入答案。若答案正确,则显示“That’s right!”,学生得分为10分;若答案不正确,则显示“It’s not correct!”,学生得分为0分;返回学生得分。
#include "stdafx.h"
#include <stdlib.h>
#include <time.h>

int random1();
int random2();
int grade();
int edd();

void main()
{
int daan,a,counter,answer,y,fenshu=0;
for(counter=1;counter<=100;counter++)
{
printf("请进行选择:1.加法 2.减法 3.退出\n");
scanf("%d",&a);
if(a==1)
{
daan=random1();
}
else if(a==2)
{
daan=random2();
}
else if(a==3)
{
edd();
}
else
{
printf("你的输入有问题!请重新输入!");
}
printf("请输入计算出的答案=%d",answer);
scanf("%d",&answer);
fenshu=fenshu+grade();
printf("是否继续? 1.是 2.否");
scanf("%d",&y);
edd();

}

}

int random1()
{
int m,n,add;
for(add=0;add<=20; )
{
srand(time(NULL));
m=rand()%20+1;
n=rand()%20+1;
add=m+n;
if(m>=0&&m<=20&&n>=0&&n<=20)
{
return add;
}
}
}

int random2()
{
int m,n,add;
for(add=0;add<=20; )
{
srand(time(NULL));
m=rand()%20+1;
n=rand()%20+1;
add=n-m;
if(m>=0&&m<=20&&n>=0&&n<=20)
{
if(n<=m)
{
return -add;
}
else
{ return add;}
}
}
}

int grade(int daan,int answer)
{
int fen;
if(daan==answer)
{
printf("That’s right!");
fen=10;
}
else if(daan!=answer)
{
printf("It’s not correct!");
fen=0;
}
return fen;
}

int edd(int counter,int fenshu,int y)
{
if(y==2||y==3)
{printf("所做题目的总数:%d",counter);
printf("做对的题目数:%d",fenshu/10);
printf("做错的题目数:%d",(1000-fenshu/10)/10);
printf("你的最后等分为:%d",fenshu);}
return 0;

}求大神讲解下我这个哪里错了,怎么改?

很显眼的一个错误
int grade(int daan,int answer)
int edd(int counter,int fenshu,int y)
你声明这两函数的候是没有形参的。,但你后来怎么又有形参了。既然有形参,而你调用的时候,也没有放入对应的实参。追问

那把声明那里改了以后,还是不行,教教我怎么做

追答

稍等,我在复制修改

我能重写吗?

终于改好了.字数太多传不上去,附件了

#include "stdio.h"#include #include int random1();int random2();int grade(int daan,int answer);int edd(int counter,int fenshu);int main(){ int daan,a,counter,answer,y,fenshu=0; for(counter=1;counter<=100;counter++) { printf("请进行选择:1.加法 2.减法 3.退出\n"); scanf("%d",&a); if(a==1) daan=random1(); else if(a==2) daan=random2(); else if(a==3) break; else printf("你的输入有问题!请重新输入!"); printf("请输入计算出的答案="); scanf("%d",&answer); fenshu=fenshu+grade(daan,answer); printf("是否继续? 1.是 2.否\n"); scanf("%d",&y); if(y==2) break; } edd(counter,fenshu); return 0;}int random1(){ int m,n,add; srand(time(NULL)); m=rand()%20; n=rand()%20; if(m==0) m+=1; if(n==0)n+=1; add=m+n; printf("%d+%d= \n",m,n); return add;}int random2(){ int m,n; srand(time(NULL)); m=rand()%20; n=rand()%20; if(m==0) m+=1; if(n==0)n+=1; if(m<n) { printf("%d-%d= \n",n,m); return n-m; } else { printf("%d-%d= ",m,n); return m-n; }}int grade(int daan,int answer){ int fen; if(daan==answer) { printf("That’s right!"); fen=10; } else if(daan!=answer) { printf("It’s not correct!"); fen=0; } return fen;}int edd(int counter,int fenshu){ printf("所做题目的总数:%d",counter); printf("做对的题目数:%d",fenshu/10); printf("做错的题目数:%d",counter-(fenshu/10)); printf("你的最后等分为:%d",fenshu); return 0; }

可以

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网