c++函数返回字符串

#include<iostream>#include<time.h>usingnamespacestd;charTK(intk){switch(k)case0:retur... #include <iostream>
#include <time.h>
using namespace std;

char TK(int k)
{
switch(k)
case 0:
return "+";
case 1:
return "-";
case 2:
return "*";
default:
return "error";
}
int TheRanswer(int x,int y,int k)
{
switch(k)
case 0:
return x+y;
case 1:
return x-y;
case 2:
return x*y;
default:
return -1;
}
int main()
{
srand((unsigned)time(NULL));
cout<<"加法练习"<<endl;
int x,y,k,answer;
go:
x=rand()%100;y=rand()%100;k=rand()%3;
if(x>y){x^=y;y^=x;x^=y;}
cout<<x<<TK(k)<<y<<"=";
cin>>answer;
if (answer==TheRanswer(x,y,k)){cout<<"你答对了!";}
else cout<<"你答错了!";
system("pause");
goto go;
return 0;
}

请问怎么实现TK函数的功能?以上代码会出错,希望知道TK函数的正确写法。
展开
 我来答
蔷天巧Qw
2013-12-02 · 超过18用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:34万
展开全部

错误集中在两个函数里:首先,switch后面没加{},其次TK的输出应是char类型,不能return“+” 要return‘+’             ,return “error”也不行

char TK(int k)

{

 switch(k)

 {

  case 0:

   return '+';

  case 1:

   return '-';

  case 2:

   return '*';

  default:

   return '\0';

 }

}

int TheRanswer(int x,int y,int k)

{

 switch(k)

 {

  case 0:

   return x+y;

  case 1:

   return x-y;

  case 2:

   return x*y;

  default:

   return -1;

 }

}

xoaxa
2013-12-02 · TA获得超过8611个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3495万
展开全部

/*

加法练习
43-25=18
你答对了!
1、继续,0、结束,请选择 : 1
94+60=154
你答对了!
1、继续,0、结束,请选择 : 1
66+25=91
你答对了!
1、继续,0、结束,请选择 : 1
57+54=111
你答对了!
1、继续,0、结束,请选择 : 3
38-5=33
你答对了!
1、继续,0、结束,请选择 : 3
89*26=

*/

#include <iostream>
#include <ctime>
using namespace std;
char TK(int k) { // 返回 char
 switch(k) {
  case 0 : return '+';
  case 1 : return '-';
  case 2 : return '*';
  default: return ' ';
 }
}
 
int TheRanswer(int x,int y,int k) {
 switch(k) {
  case 0 : return x + y;
  case 1 : return x - y;
  case 2 : return x * y;
  default: return -1;
 }
}
int main() {
 srand((unsigned)time(NULL));
 cout << "加法练习\n";
 int x,y,k,answer,choose;
 do {
  x = rand()%100;
  y = rand()%100;
  k = rand()%3;
  if(x < y){x ^= y;y ^= x;x ^= y;}
  cout << x << TK(k) << y << "=";
  cin >> answer;
  if(answer == TheRanswer(x,y,k)) {
   cout<<"你答对了!\n";
  }
  else cout<<"你答错了!\n";
  cout << "1、继续,0、结束,请选择 : ";
  cin >> choose;
 }while(choose);
 return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
空雪梦见
2013-12-02 · TA获得超过5598个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1210万
展开全部
char TK(int k) 改为 char* TK(int k) 就可以了
最好改为 const char* TK(int k)

p.s. 乘除都出来了,为什么叫“加法练习”(锤锤锤

补充:哦对你switch没加 { } 我刚刚都没注意到……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式