预备:产生随机数的方法
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int i,ran_num; srand(time(0)); for(i=0; i<10; i++) { ran_num = rand() % 6 + 1; //ran_num将在1~6之间。 printf("%d ", ran_num); } printf("\n"); return 0; }
设计一个程序,帮助小学生练习10以内的加法
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int sum=0;//学生答对题目 int a,b,d,t; //分别表示两个运算数,正确答案及学生输入的答案 int i; srand(time(0)); //初始化随机种子 for(i=0; i<10; i++) { printf("第 %d 题: ", i+1); a=rand()%10+1; b=rand()%10+1; d=a+b; //得到正确答案 printf("%d+%d=", a, b); scanf("%d", &t); if(t==d) //用户输入的答案与正确答案对比 { printf(" right! \n"); sum++; } else printf(" wrong! \n"); } printf("共答对了%d道题,得分%d\n", sum, sum*10); return 0; }
拓展:小学生算术能力测试系统
设计一个程序,用来实现帮助小学生进行百以内的算术练习,它具有以下功能:提供10道加、减、乘或除四种基本算术运算的题目;练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息。
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int sum=0; int a,b,d,t; int c; //0-加 1-减 2-乘 3-除 int i; srand(time(0)); for(i=0; i<10; i++) { //1. 产生算式 a=rand()%100+1; b=rand()%100+1; c=rand()%4; if(a<b&&(c==1||c==3)) { d=a; a=b; b=d; } if(c==3) a=(a/b)*b; //2. 显示算式 printf("第 %d 题: ", i+1); switch(c) { case 0: d=a+b; printf("%d+%d=", a, b); break; case 1: d=a-b; printf("%d—%d=", a, b); break; case 2: d=a*b; printf("%d×%d=", a, b); break; case 3: d=a/b; printf("%d÷%d=", a, b); break; } //3. 接受答案并判断对错 scanf("%d", &t); if(t==d) { printf(" right! \n"); sum++; } else printf(" wrong! \n"); } printf("共答对了%d道题,得分%d\n", sum, sum*10); return 0; }