小学生50以内数学计算基于c语言

新人报道,多多关照 2019-09-11 03:08:56
#include<stdlib.h> #include<stdio.h> # include <time.h> #include<conio.h> #include<string.h> int num=0, add=0; int score[3]={10,7,5}; char str[20],str1[10][20]; int a=0,b=0,c=0,d,k=0,i=0,j=1,result; char sf[2]={'+','-'}; int main() { srand(time(0)); while(1) { num=0; while(num<10) { do{ a=rand()%51; b=rand()%51; d=rand()%2; if(d==0) c=a+b; else c=a-b; }while(c<0||c>50); printf("%d %c %d =\n",a,sf[d],b); printf("输入计算结果:\n"); while(1) { scanf("%d",&result); k++; if(result==c) { printf("回答正确\n"); add+=score[k-1]; k=0; break; } else if(k<3) { printf("错误,请重新回答:\n"); } else { printf("错误,正确答案:%d\n",c); break; } } num++; } if(add>=90) printf("\nSMART\n"); else if (add>=80) printf("\nGOOD\n"); else if(add>=70) printf("\nOk\n"); else if(add>=60) printf("\nPASS\n"); else printf("\nTAY AGAIN\n"); getchar(); } return 0; }
...全文
169 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢指导,我去尝试一下
lin5161678 2019-09-25
  • 打赏
  • 举报
回复
    do{
a=rand()%51;
b=rand()%51;
d=rand()%2;
if(d==0) c=a+b;     else c=a-b;
    }while(c<0||c>50);
这一段通过不停试错得到结果 虽然可行 但可以考虑优化 最大是50 那么 a确定的情况下 b直接缩小选择随机数的范围即可
a = rand() % 51;
b = rand() % (51 - a);//默认按照加法处理
c = a+b;
d=rand()%2;
if(d == 1)//减法做特殊处理 
{
c = b;
b += a;

}
一次到位不用循环
  • 打赏
  • 举报
回复
引用 3 楼 棉猴的回复:
代码写的不错,值得学习!
k = 0;//将k复位
printf("错误,正确答案:%d\n", c);

如果不添加这一行,在经过第一次提示正确答案后,以后每次只答错一次就要提示正确答案,而不是三次。
因为是题目要求答题者回答三次才能显示正确答案,所以才弄了答三次才能显示正确答案
  • 打赏
  • 举报
回复
是的你这种更简单,我那种复杂化了
棉猴 2019-09-24
  • 打赏
  • 举报
回复
代码写的不错,值得学习!
k = 0;//将k复位
printf("错误,正确答案:%d\n", c);

如果不添加这一行,在经过第一次提示正确答案后,以后每次只答错一次就要提示正确答案,而不是三次。
自信男孩 2019-09-11
  • 打赏
  • 举报
回复
//int num=0, add=0;
int num, add;
int score[3]={10,7,5};
//char str[20],str1[10][20];
//int a=0,b=0,c=0,d,k=0,i=0,j=1,result;
int a, b, c, d, k, i, j, result;
char sf[2]={'+','-'};

这些全局变量可以这么定义和声明;

对于i, j, k这些下表,建议定义为局部变量。

这个地方有关问题,如果使用者连续3次以上回答错误,那么在跳出循环之前,
是否现将k赋值为0呢,否则k的值会继续增加,回答下一道题时,执行这条语句时:add+=score[k-1];
会导致score数组溢出。
修改如下:
 else
{
printf("错误,正确答案:%d\n",c);
k = 0;
break;
}

69,382

社区成员

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

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