满意答案
Alexander5n
.01.26
采纳率:55%等级:12
已帮助:10668人
#include
#include
#define ExerNumber 10 /*每轮题目数 */
void test()
{
int algtype = 0; /*计算类型 */
int i, /*for的循环控制变量 */
points = 0, /*成绩 */
num1[10], num2[10], /*两个操作数 */
result[10], /*程序的计算结果 */
answer = 0; /*学生回答 */
char opt[10];
printf("现在开始计算,请看题: ");
for(i=0;i<10;++i)
{
num1[i] = rand() % 100; /*产生100以内的随机整数 */
num2[i] = rand() % 100; /*产生100以内的随机整数 */
algtype = rand() % 3 + 1;
switch (algtype)
{
case 1:
result[i] = num1[i] + num2[i]; /*加法计算 */
printf("\n%d + %d",num1[i],num2[i]);
opt[i] = '+';
break;
case 2:
if(num1>num2) /*减法计算 */
{
printf("\n%d - %d",num1[i],num2[i]),
result[i] = num1[i] - num2[i];
}
else
{
printf("\n%d - %d",num2[i],num1[i]),
result[i] = num2[i] - num1[i];
}
opt[i] = '-';
break;
case 3:
result[i] = num1[i] * num2[i]; /*乘法计算 */
printf("\n%d * %d",num1[i],num2[i]);
opt[i] = '*';
break;
}
printf("= ?");
scanf("%d",&answer); /*获取用户输入的结果*/
if(answer == result[i]) ++points; /*积分 */
else
printf("\n%d为正解",result[i]); /*显示正确答案 */
}
printf("\n你的成绩"); /*打印成绩 */
switch(points)
{
case 10 :
case 9:
printf("优秀。");
break;
case 8 :
case 7 :
printf("良好。");
break;
case 6 :
case 5 :
printf("及格。");
break;
default :printf("还要努力。");
}
printf("\n以下是你刚才作的所有题目");
for(i=0;i<10;++i)
{
printf("\n%d %c %d = %d",num1[i],opt[i],num2[i],result[i]);
}
}
int main(void)
{
char yesOrNo; /*回答是否继续 */
test();
do
{
printf("\n你还想继续么(y/n)?"); /*决定是否继续 */
yesOrNo = getchar();
if (yesOrNo == 'y'||yesOrNo == 'Y') test();
if (yesOrNo == 'n'||yesOrNo == 'N') exit(0);
}while(1);
return(0);
}
00分享举报