C++
编译无错误,但达不到预期效果
#include
using namespace std;
int a,b,huida,daan;
int xyt=0;
void zw(){
cin>>huida;
cout<if(huida==daan){
cout<<"答对啦,真聪明!进入下一题扣0,退出扣1。"<>xyt;
cout<else
cout<<"Wrong!答案等于"<"。进入下一题扣0,退出扣1。"<>xyt;cout<while(xyt==0){
srand(time(0));
a=rand()%100;
b=rand()%100;
switch(rand()%4){
case 0:daan=a+b;cout<'+'<'=';zw();break;
case 1:if(b>a){a=b; b=a;}daan=a-b;cout<'-'<'=';zw();break;
case 2:daan=a*b;cout<'*'<'=';zw();break;
case 3:a=a*1.0;daan=a/b;cout<'/'<'=';zw();break;
}
}
return 0;
}
编译成功,运行时回答问题后扣0不进入下一题(程序还在运行)
实在没有思路,恳请高人解答
正常运行程序,电脑自动出题,回答后可选择是否进入下一题。
回答请附原因及修正后的代码
else你没加括号
#include<bits/stdc++.h>
using namespace std;
int a,b,huida,daan;
int xyt=0;
void zw(){
cin>>huida;
//cout<<endl;
if(huida==daan){
cout<<"答对啦,真聪明!进入下一题扣0,退出扣1。"<<endl;
cin>>xyt;
cout<<endl;
}
else
{
cout<<"Wrong!答案等于"<<daan<<"。进入下一题扣0,退出扣1。"<<endl;
cin>>xyt;
cout<<endl;
}
}
int main()
{
while(xyt==0){
//cout<<xyt<<endl;
srand(time(0));
a=rand()%100;
b=rand()%100;
switch(rand()%4){
case 0:daan=a+b;cout<<a<<'+'<<b<<'=';zw();break;
case 1:if(b>a){a=b; b=a;}daan=a-b;cout<<a<<'-'<<b<<'=';zw();break;
case 2:daan=a*b;cout<<a<<'*'<<b<<'=';zw();break;
case 3:a=a*1.0;daan=a/b;cout<<a<<'/'<<b<<'=';zw();break;
}
}
return 0;
}
在你的程序中,进入下一题的条件是 xyt 等于 0。但是在 main 函数的最后,xyt 被赋值为 0 。所以程序会一直循环下去。
修正后的代码应该这样:
int main()
{
while(xyt==0){
srand(time(0));
a=rand()%100;
b=rand()%100;
switch(rand()%4){
case 0:daan=a+b;cout<<a<<'+'<<b<<'=';zw();break;
case 1:if(b>a){a=b; b=a;}daan=a-b;cout<<a<<'-'<<b<<'=';zw();break;
case 2:daan=a*b;cout<<a<<'*'<<b<<'=';zw();break;
case 3:a=a*1.0;daan=a/b;cout<<a<<'/'<<b<<'=';zw();break;
}
}
return 0;
}
在 void zw() 里添加一个语句:
cin>>xyt;
这样,在回答问题后,程序就会等待用户输入进入下一题或退出。
修正后代码如下:
#include<bits/stdc++.h>
using namespace std;
int a,b,huida,daan;
int xyt=0;
void zw(){
cin>>huida;
cout<<endl;
if(huida==daan){
cout<<"答对啦,真聪明!进入下一题扣0,退出扣1。"<<endl;
}
else
cout<<"Wrong!答案等于"<<daan<<"。进入下一题扣0,退出扣1。"<<endl;
cin>>xyt;cout<<endl;
}
int main()
{
while(xyt==0){
srand(time(0));
a=rand()%100;
b=rand()%100;
switch(rand()%4){
case 0:daan=a+b;cout<<a<<'+'<<b<<'=';zw();break;
case 1:if(b>a){a=b; b=a;}daan=a-b;cout<<a<<'-'<<b<<'=';zw();break;
case 2:daan=ab;cout<<a<<''<<b<<'=';zw();break;
case 3:a=a*1.0;daan=a/b;cout<<a<<'/'<<b<<'=';zw();break;
}
}
return 0;
}