C语言 用加法运算,生成两个随机数,用加法求和,成功追加100分。

生成随机数后提示用户输入答案。如果答案正确,输出正确,如果错误,输出错误并重新生成两个随机数进行加法运算并提示用户输入答案。

我自己编的不知道怎么回事老是要输两次数,结果是第一次输的数,而输完之后提示错误之后生成的随机数加法结果却与第二次输入的数进行比较而不是提示了是哪两个随机数进行运算再输入的答案。

求高人指点这个函数该怎么做。成功后追加100分
刚编了个除法的函数,但是测试的时候发现精度对比的时候有点问题,想精确到小数点后两位,但是结果有问题,以下是函数代码,求修改
void chu()
{
int a,b;
float num;
int t=10,d=100;
srand((unsigned)time(0));
a=rand()%(d-t)+t;
b=rand()%(d-t)-t;
printf("%d / %d = ?\n",a,b);
printf("请输入一个数: ");
scanf_s("%f",&num);
if(abs((float)a/(float)b-num)<=0.005)
printf("正确!\n");
else
while(1){
printf("error! answer is %6.3f\n",(float)a/(float)b);
a=rand()%(d-t)+t;
b=rand()%(d-t)-t;
printf("%d / %d = ?\n",a,b);
printf("请输入一个数: ");
scanf_s("%f",&num);
if(abs((float)a/(float)b-num)<=0.005){
printf("正确\n");
break;
}
}
}
还有就是我有5个函数分别是加减乘除还有个输出选项框的,高手帮忙设计个主函数分别来调用这几个函数,自己写的不行,要求就是先调用print()输出选项框选择选项12345.分别是加减乘除和退出,退出就是不做了,其他的就是调用那几个运算函数。算正确之后再返回选项框选择选项。自己做的没法回到选项框。小函数做好了求主函

第1个回答  2011-06-12
#include <iostream>
#include <ctime>
using namespace std;

int main()
{

int a,b;
int num;
int t=10,d=100;
srand((unsigned)time(0));
a=rand()%(d-t)+t;
printf("当前随机数为:%d\n",a);
printf("请输入一个数: ");
scanf("%d",&num);
if(a==num)
printf("正确!\n");
else
while(true){
a=rand()%(d-t)+t;
b=rand()%(d-t)+t;
printf("当前随机数为:%d\n",a+b);
printf("请输入一个数: ");
scanf("%d",&num);
if(num==(a+b)){
printf("正确\n");
break;
}
}
return 0;
}追问

回答很好哦谢谢,我改了下能用了,现在又有问题了,能帮我解决下么

追答

#include
#include

void print(){
char c = '0';
printf("请选择:\n1.加\t2.减\t3.乘\t4.除\t5.退出\n");
fflush(stdin);
scanf("%c",&c);
switch(c){ //返回的时候调用下print这个函数就是了
case '1':
//加
break;
case '2':
//减
break;
case '3':
//...
break;
case '4':
//...
break;
case '5':
//...
break;
default:
printf("选择错误\n");
print();
}

}

int main(){
print();
return 0;
}

追问

除法的精度问题怎么解决呀?怎么都没办法调好,输进去的答案和标准答案偏差大了也说正确

本回答被提问者采纳
第2个回答  2011-06-12
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
//sum = a + b
int a, b, sum, ret;

srand((unsigned)time(NULL));
while(1)
{
a = rand()%6;
b = rand()%6;
sum = a + b; //结果在0~10之间

printf("请用户输入答案:\n");
scanf("%d", &ret);
if(ret == sum)
{
printf("输出,实际结果 %d + %d = %d\n", a, b, sum);
break;
}
printf("错误,实际结果 %d + %d = %d\n", a, b, sum);
}
}
第3个回答  2011-06-13
j