永发信息网

这个程序的问题是?

答案:3  悬赏:20  手机版
解决时间 2021-04-24 00:24

#include <iostream.h>
#include <stdlib.h>
#include <time.h>
int main()
{
     int a,b,numOfQues=0,numOfRight=0;
     char inquiry;
     srand(time(NULL));//用于产生随机数,不必理会
     cout <<"***欢迎你来做两位数的加减法***" <<endl;
     do
  {
         int temp=rand()%2;//随机产生 1 或者 0 用于产生随机的加法或者减法
         a=rand()%100;//产生一个 100 以内的随机数
         b=rand()%100; //产生一个 100 以内的随机数
   switch ( temp)
   {
    case 0:
     {
      int ans;//用于存放答案
      cout <<a <<'+' <<b <<'=';
      cin >>ans;
      if(ans==(a+b))
      {
       ++numOfQues;
       cout <<"恭喜!答对了!" <<endl;
      }
      else
       cout <<"答错了,再接再厉!" <<endl;
      break;
     }
    case 1:
     {
      int ans; //用于存放答案
      cout <<a <<'-' <<b <<'=';
      cin >>ans;
      if(ans==(a-b))
      {
       ++numOfQues;
       cout <<"恭喜!答对了!" <<endl;
      }
      else
       cout <<"答错了,再接再厉!" <<endl;
     }
   }
   ++numOfRight;
   cout <<"你还要再做一题吗?(N 表示不要)" <<endl;
   cin >>inquiry;
  }while(inquiry!='n'&&inquiry!='N');
   cout<<"你的正确率为:"<< (numOfQues%numOfRight )<< "%.再见" ;
   return 0;
}

 

运行结果:
<<"%。再见!" <<endl;
}

***欢迎你来做两位数的加减法***
81+32=113
恭喜!答对了!
你还要再做一题吗?(N 表示不要)
y
20-2=18
恭喜!答对了!
你还要再做一题吗?(N 表示不要)
y
51+34=99
答错了,再接再厉!
你还要再做一题吗?(N 表示不要)
n
你的答题正确率为 66%。再见!

 

这个程序怎么错了啊?

正确率老是不对,
  

最佳答案

#include <iostream.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int a,b,numOfQues=0,numOfRight=0;
    char inquiry;
    srand(time(NULL));//用于产生随机数,不必理会
    cout <<"***欢迎你来做两位数的加减法***" <<endl;
    do
  {
    int temp=rand()%2;//随机产生 1 或者 0 用于产生随机的加法或者减法
    a=rand()%100;//产生一个 100 以内的随机数
    b=rand()%100; //产生一个 100 以内的随机数
   switch ( temp)
   {
    case 0:
    {
    int ans;//用于存放答案
    cout <<a <<'+' <<b <<'=';
    cin >>ans;
    if(ans==(a+b))
    {
    ++numOfQues;
    cout <<"恭喜!答对了!" <<endl;
    }
    else
    cout <<"答错了,再接再厉!" <<endl;
    break;
    }
    case 1:
    {
    int ans; //用于存放答案
    cout <<a <<'-' <<b <<'=';
    cin >>ans;
    if(ans==(a-b))
    {
    ++numOfQues;
    cout <<"恭喜!答对了!" <<endl;
    }
    else
    cout <<"答错了,再接再厉!" <<endl;
    }
   }
   ++numOfRight;
   cout <<"你还要再做一题吗?(N 表示不要)" <<endl;
   cin >>inquiry;
  }while(inquiry!='n'&&inquiry!='N');
   cout<<"你的正确率为:"<< (double)numOfQues/numOfRight *100<< "%.再见" ;
   return 0;
}


 

全部回答

如果只要输出百分率的部分改成下面这样就可以了,由于numOfQues%numOfRight为整数。

cout<<"你的正确率为:"<< ((double) numOfRight/numOfQues*100)<< "%.再见" ;

把 cout<<"你的正确率为:"<< (numOfQues%numOfRight )<< "%.再见" ; 改成: cout<<"你的正确率为:"<< ( (float)numOfQues/(float)numOfRight )*100<< "%.再见"<<endl; 就OK了! 测试结果:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
换个3.0的手机屏幕多少钱?
小明的电话是:8位数,前四位是一样的,后四
girl sitting volleyball the the on is( )连
如何用积分免费打钻
启航艺术教育怎么去啊,有知道地址的么
情感怎样增加
夫妻保卫战,都是什么台在播放,几点。谢谢
我家电脑能玩实况几?
做梦梦到死人好么?
我五月二十号流产了,医生说是内分泌引起的,
你觉得什么样类型的歌好听
电脑总是出现dhfygf.dat-应用程序错误 怎么解
秧的五笔怎么打
包头铁道职业学院新的校区建好了吗
南宁市区2010年住房一共有多少套?空置率是多
推荐资讯
英国blue重组了?明年会发新专辑吗?
公交车为了避开违章行驶的小轿车而撞上大树,
我的手机是国产杂牌机,有哪位友友告诉我一个
距离的爱情?
QQ邮箱使用不了难题
DNF天惟禁地任务我做了也去刷过深渊了怎么图
谁能帮我家未出生的宝宝起个好听漂亮吉利的好
谁送我几个月超Q
怎样将水彩画画的有立体感啊
新买了个苹果手机,没有中文说明书,不知道怎
谁有永久免费的网游介绍下!
开通黄钻后,然后再取消是不是马上扣钱的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?