快速打印一个五分制的评分情况

原代码转自知乎:

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:郑航
链接:http://www.zhihu.com/question/37904806/answer/74109099
来源:知乎

function getRating(rating) {
    if(rating > 5 || rating < 0) throw new Error('数字不在范围内');
    return '★★★★★☆☆☆☆☆'.substring(5 - rating, 10 - rating );}

改为C++版本:

#include <iostream>

using namespace std;

string getRating(int rating) {
	string star = "★★★★★☆☆☆☆☆";
	if (rating > 5 || rating < 0) throw "数字不在范围内";
	return star.substr(10-rating*2, 10);
}

int main(){
	int num = 0;
	while (true)
	{
		cout << "请输入一个数字" << endl;
		cin >> num;
		string str = getRating(num);
		cout << "您的评分为:";
		for each (char var in str)
		{
			cout << var;
		}
		cout << endl;
	}
	
}

这里有两个问题:1、C++没有substring函数(substring(起始位置,终止位置)),只有substr函数(substr(起始位置,长度));2、C++中的符号占用两个字符,而原javascript代码符号只占用1个字符。



解决这两个问题就行了。


以上。

转载于:https://my.oschina.net/u/2414359/blog/536405

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值