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

问题描述:

C语言 用加法运算,生成两个随机数,用加法求和,成功追加100分.
生成随机数后提示用户输入答案.如果答案正确,输出正确,如果错误,输出错误并重新生成两个随机数进行加法运算并提示用户输入答案.
我自己编的不知道怎么回事老是要输两次数,结果是第一次输的数,而输完之后提示错误之后生成的随机数加法结果却与第二次输入的数进行比较而不是提示了是哪两个随机数进行运算再输入的答案.
成功后追加100分
刚编了个除法的函数,但是测试的时候发现精度对比的时候有点问题,想精确到小数点后两位,但是结果有问题,以下是函数代码,求修改
void chu()
{
\x05int a,b;
\x05float num;
\x05int t=10,d=100;
\x05srand((unsigned)time(0));
\x05a=rand()%(d-t)+t;
\x05b=rand()%(d-t)-t;
\x05printf("%d / %d = \n",a,b);
\x05printf("请输入一个数:");
\x05scanf_s("%f",&num);
\x05if(abs((float)a/(float)b-num)
1个回答 分类:综合 2014-10-07

问题解答:

我来补答
#include
#include
using namespace std;
int main()
{
\x05
\x05int a,b;
\x05int num;
\x05int t=10,d=100;
\x05srand((unsigned)time(0));
\x05a=rand()%(d-t)+t;
\x05printf("当前随机数为:%d\n",a);
\x05printf("请输入一个数:");
\x05scanf("%d",&num);
\x05if(a==num)
\x05\x05printf("正确!\n");
\x05else
\x05\x05while(true){
\x05\x05\x05a=rand()%(d-t)+t;
\x05\x05\x05b=rand()%(d-t)+t;
\x05\x05\x05printf("当前随机数为:%d\n",a+b);
\x05\x05\x05printf("请输入一个数:");
\x05\x05\x05scanf("%d",&num);
\x05\x05\x05if(num==(a+b)){
\x05\x05\x05\x05printf("正确\n");
\x05\x05\x05\x05break;
\x05\x05\x05}
\x05\x05}
\x05return 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; }
再问: 除法的精度问题怎么解决呀?怎么都没办法调好,输进去的答案和标准答案偏差大了也说正确
 
 
展开全文阅读
剩余:2000
上一页:例2的第一问