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

KATNA 2010-05-16 11:06:15
要求:不得全部使用全局变量,至少要有一次传参和一次带值返回。
可参考:
将学生所做题数及所得总分设为全局变量
主函数:计算机提示学生选择进行加法还是减法运算 (将得到的运算符传给函数一) ;
函数一,出题:计算机随机给出(使用random()函数)两个20以内的数(计算机要保证参与运算的数和运算结果都在20以内,且不能小于0;将计算结果返回,并传给函数二)
函数二,判断:提示学生输入答案。若答案正确,则显示“That’s right!”及学生的得分(每对一题加10分);若答案不正确,则显示“It’s not correct!”及学生的得分(错题不减分);
函数三,报告最终结果:每次最多做100道题,学生也可以中途退出;两种情况均视为测验结束,计算机应显示:所做题目的总数,做对的题数,做错的题数,和最后得分。


帮忙指导一下啦~
...全文
1967 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
invail 2010-05-22
  • 打赏
  • 举报
回复
这个这个……答案在上面……
huanmie_09 2010-05-22
  • 打赏
  • 举报
回复
搞完了楼主就请结贴吧! ^_^
gelu1040 2010-05-20
  • 打赏
  • 举报
回复
求VC高手帮忙!小学生算术题 紧急求助:如何只用"加减乘除"基础运算,求任意数的任意次方专题开发 ... C 语言· 问题资料大全 一个低学历者的辛酸程序路(转载) - 扩充话题/ 程序人生 ACM大学生程序设计比赛亚洲区预选赛最难的一题. C/C++ / C++ 语言 ... “2012-2”年初2:写给面临危机的计算机类学生们的肺腑之
fbmhack 2010-05-20
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int pass=0;
int all=0;

int MakeQuestion(void);
void CheckAnswer(int answer);

int main()
{
int i,answer;
char c;

for(i=1;i<=100;++i){
printf("开始做题?,y继续,其他键退出\n");
c=getchar();
if(c!='y' && c!='Y') break;
answer=MakeQuestion();
CheckAnswer(answer);
getchar();
}
printf("所做题目的总数%d,做对的题数%d,做错的题数%d,和最后得分%d\n",all,pass,all-pass,pass*10);
}
int MakeQuestion(void)
{
int num1,num2,d;
srand(time(NULL));
num1=rand()%21;
num2=rand()%21;
d=rand()%2;
if (d){
printf("%d + %d =",num1,num2);
return num1+num2;
}
else{
printf("%d - %d =",num1,num2);
return num1-num2;
}
}
void CheckAnswer(int answer)
{
int input;
all++;
scanf("%d",&input);
if(input==answer){
printf("That’s right!\n");
pass++;
}
else printf("It’s not correct!\n");
}
GGS_521 2010-05-19
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
jianfa(int x,int y,int z)
{
int m,n;
printf("%d-%d= ",x,y);
m=x-y;
scanf("%d",&n);
if(m==n)
{
printf("It’s correct!\n");
z+=10;

}
else
{
printf("It’s not correct!\n");
z+=0;

}
return z;

}
jiafa(int x,int y,int z)
{
int m,n;
printf("%d+%d= ",x,y);
m=x+y;
scanf("%d",&n);
if(m==n)
{
printf("It’s correct!\n");
z+=10;

}
else
{
printf("It’s not correct!\n");
z+=0;

}
return z;

}
main()
{
int a,b,c,i,A=0,j=0,f=0;
char cut;
printf("欢迎进入考试系统!\n");
printf("****************\n");
srand( (unsigned)time( NULL ) );
for(i=1;i<=1000;i++)
{
if(f>100)
break;
else
{
a=rand()%21;
b=rand()%21;
c=rand()%2;
if((a>=b)&&(a+b<=20))
{
f++;
printf("第%d题\n",++j);
if(c==0)
A=jianfa(a,b,A);
else
A=jiafa(a,b,A);
}
else
continue;
printf("是否继续答题?继续y,退出n.\n");
flushall();
scanf("%c",&cut);
if(cut=='n')
break;
}

}
printf("************统计*************\n");
printf("共做%d题,做对%d道,做错%d道\n",j,A/10,j-A/10);
printf("最后得分为%d分.\n",A);

}
purpleDiamond 2010-05-19
  • 打赏
  • 举报
回复
DDDDDDDDD
we_sky2008 2010-05-19
  • 打赏
  • 举报
回复

#include<iostream>
#include<stdlib.h>

using namespace std;

class TEST
{
public:
TEST() : result(0), total(0), correct(0){}
void question(char op)
{
int op1 = rand() % 20, op2 = rand() % 20;

while(op1 <= 0)
op1 = rand() % 20;
while(op2 <= 0)
op2 = rand() % 20;
cout<<op1<<' '<<op<<' '<<op2<<" = ";
switch(op)
{
case '+': result = op1 + op2;
break;
case '-': result = op1 - op2;
break;
default:
break;
}
}
void answer()
{
int res;

cin>>res;
if (res == result)
{
cout<<"That’s right!"<<endl;
correct++;
}
else
cout<<"It’s not correct!"<<endl;
total++;
cout<<endl;
}
void report()
{
cout<<"总答题数:\t"<<total<<endl;
cout<<"答对题数:\t"<<correct<<endl;
cout<<"答错题数:\t"<<total - correct<<endl;
cout<<"最后得分:\t"<<correct * 10<<endl;
}
private:
int result;
int total;
int correct;
};

int main()
{
#define MAX_TIMES 100
TEST t;
char op, flag;

for (int i = 0; i < MAX_TIMES; i++)
{
cout<<"请输入操作符:";
cin>>op;
t.question(op);
t.answer();
cout<<"输入y继续,输入其他字符退出"<<endl;
cin>>flag;
if (flag != 'y')
break;
}
t.report();

system("pause");
return 0;
}
十八道胡同 2010-05-19
  • 打赏
  • 举报
回复
你先写,碰到什么问题在说
最好有UI
wzywsk 2010-05-19
  • 打赏
  • 举报
回复
这种的话楼主自己编吧~~对你有好处的
向立天 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 katna 的回复:]
这是一道实验题,上面的不是思路,是老师给的实验要求,还请高手们帮忙组织编写一下代码~
谢谢哈!
[/Quote]
你自己试试写写再具体过来问问效果会更好些
zhty0417 2010-05-19
  • 打赏
  • 举报
回复
不错 我的C语言都让我又还给老师了
canshui 2010-05-19
  • 打赏
  • 举报
回复
lz自己实现下喽,呵呵……

加油……
Dks919 2010-05-18
  • 打赏
  • 举报
回复
受理,有时间,我会尽快编出
KATNA 2010-05-18
  • 打赏
  • 举报
回复
这是一道实验题,上面的不是思路,是老师给的实验要求,还请高手们帮忙组织编写一下代码~
谢谢哈!
mafree 2010-05-16
  • 打赏
  • 举报
回复
照你的思路去做啊 .
贪食蛇男 2010-05-16
  • 打赏
  • 举报
回复
同上回复内容太短了
liutengfeigo 2010-05-16
  • 打赏
  • 举报
回复
还要指导什么啊?不是都写出来了吗?
barryhappy 2010-05-16
  • 打赏
  • 举报
回复
貌似很简单哦……自己实现一下就好了,你的思路很清楚了
国际学术期刊Science/AAAS和英特尔在全球首次联袂推出第一季《架构师成长计划》以来,吸引了无数架构师踊跃参与,获得业内广泛赞誉。为持续助力架构师把握数智机遇,构建未来,第二季《架构师成长计划》全新升级,强势归来!业内顶尖架构师大咖齐聚,为架构师群体量身打造系统成长课程,带来涵盖云游戏、云原生、联邦学习、生信大数据、算力网络、云网融合等多个热门话题的前沿技术及案例实践。第一期:超视频时代 音视频架构建设与演进复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=298&tc=yxq0921l2d&frm=csdn_2第二期:转化医学研究背景下的高性能计算平台复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=311&tc=pzw21rx59o&frm=csdn_2第三期:联邦学习的研究与应用实践复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=315&tc=0e8trfvt8i&frm=csdn_2第四期:用架构思维为云原生做减法复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=316&tc=i2kgf55ggn&frm=csdn_2第五期:网络智能化技术与演进复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=322&tc=ckhvmonqvb&frm=CSDN_2第六期:异构计算 数据中心“芯”变革复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=325&tc=mzppx1h6ri&frm=csdn_2第七期:筑算力,话东西复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=327&tc=gwb7n8x79n&frm=csdn_2第八期:AI驱动的生命科学创新范式之变复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=328&tc=zircyqwy9u&frm=csdn_2第九期:软硬一体实现数据库性能优化复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=348&tc=4a46kfrb0o&frm=csdn_2第十期:AI规模化应用时代的深度学习平台构建复制链接收看完整内容:https://bizwebcast.intel.cn/eventstart.aspx?eid=349&tc=fm9a1mrumb&frm=csdn_2

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧