#include
#include
#include
int main()
{ int i,a,b,c,d,n=0;
srand(time(0));
for(i=0; i<10; i++) //计算10次
{ a=rand()%41+10; //产生10~50之间被乘数
b=(70+rand()%31)/a; //假定积在70~100之间,取整数商作为乘数
c=a*b; //重新计算积
printf("%d*%d=",a,b); //打印题目
scanf("%d",&d); //接收答案
if(c==d) //判断对错
{ printf("OK!\n");
n++;
}
else printf("ERROR!\n");
}
printf("练习成绩为:%d 分\n",10*n); //给出10题的总分
printf("\n");
return 0;
}
二十年的公主,一天的皇后,十个月的宠妃,一辈子的保姆,这就是女人的一生。 可有人又说: 二十年的太子,一天的皇上,十个月的奴才,一辈子的提款机,这就是男人的一生。 应该是: 二十年的追寻,一天的仪式,十个 月的呵护,换来一辈子的相濡以沫。 其实,男人和女人都不容易。 相扶相携,同甘共苦,才是真正的夫妻! 陌生人 新婚快乐!
十足十个D有损市容弱智青年咖啦!
#include
#include
#define LENGTH 10
/**
* 表示一个乘法算式的结构体
*/
typedef struct {
int a; // 第一个乘数
int b; // 第二个乘数
int product; // 乘积
} Formula;
/**
* 随机生成若干个乘法算式的两个乘数
*/
void generateFormulas(Formula* arr, int len) {
int i, a, b;
Formula* f;
srand(time(NULL)); // 初始化随机数
for (int i = 0; i < len; i++) {
f = arr + i;
// 由于第1个乘数较大, 如果先随机生成第1个乘数, 可能无法满足第2个乘
// 数在[1, 9]范围, 同时积又不超过100, 所以必须先生成第2个较小的乘数
// 第1步: 先生成第2个乘数, 范围 [1, 9]
f->a = 1 + rand() % ((9 - 1) + 1);
// 第2步: 再生成第1个乘数, 范围最小是10, 由于乘积不能超过100,
// 所以最大值为 (100 / f->a)
f->b = 10 + rand() % ((100 / f->a - 10) + 1);
}
}
/**
* 统计得分
*/
void statScore(Formula* arr, int len) {
int i, score = 0;
Formula* f;
printf("\n统计得分\n");
for (int i = 0; i < len; i++) {
f = arr + i;
if ((f->a * f->b) == f->product) {
// 答案正确
score += 10;
printf("%2d: %d * %d = %d 对\n", (i + 1), f->a, f->b, f->product);
} else {
// 答案错误
printf("%2d: %d * %d = %d 错, 正确答案为 %d\n", (i + 1), f->a, f->b, f->product, f->a * f->b);
}
}
printf("最终得分: %d\n", score);
}
/**
* 主函数
*/
int main() {
// 声明若干个乘法算式
Formula arr[LENGTH];
int i;
// 随机生成若干个乘法算式的两个乘数
generateFormulas(arr, LENGTH);
// 打印所有的算式
printf("题目:\n");
for (i = 0; i < LENGTH; i++) {
printf("%2d: %d * %d =\n", (i + 1), arr[i].a, arr[i].b);
}
// 输入答案, 保存到结构体的 product 变量中(每个公式的答案之间用空格隔开)
printf("\n输入答案(每题答案之间用空格隔开), 全部输完后按回车:\n");
for (i = 0; i < LENGTH; i++) {
scanf("%d", &arr[i].product);
}
// 统计得分
statScore(arr, LENGTH);
return 0;
}