【发布时间】:2020-12-22 00:15:43
【问题描述】:
我开始使用 HackerRank,我的代码输出了正确的输出,但它在字符串输出的末尾添加了随机数。我在 CodeBlocks 上解决了更多问题,并在那里进行了尝试。和 HackerRank 上的一样。
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
int input1;
int input2;
cin>>input1;
cin>>input2;
int aralik=input2-input1;
for(int i=0;i<(aralik+1);i++){
if((input1+i)<10){
if((input1+i)==9){
cout<<printf("nine")<<endl;
}else if((input1+i)==8){
cout<<printf("eight")<<endl;
}else if((input1+i)==7){
cout<<printf("seven")<<endl;
}else if((input1+i)==6){
cout<<printf("six")<<endl;
}else if((input1+i)==5){
cout<<printf("five")<<endl;
}else if((input1+i)==4){
cout<<printf("four")<<endl;
}else if((input1+i)==3){
cout<<printf("three")<<endl;
}else if((input1+i)==2){
cout<<printf("two")<<endl;
}else if((input1+i)==1){
cout<<printf("one")<<endl;
}
}else if((input1+i)>9){
if(((input1+i)%2)==0){
cout<<printf("even")<<endl;
}else{
cout<<printf("odd")<<endl;
}
}
}
return 0;
}
【问题讨论】:
-
printf将字符串打印到标准输出并返回打印的字符数,然后cout将打印的字符数打印到标准输出。 -
既然这是 C++,你真的真的需要了解如何使用数组或查找表。这种代码是不可持续的,使用起来完全是一团糟。而是考虑从以数据为中心的角度编写代码,如
const char* numbers[] = { "zero", "one", "two", ... },然后像cout << numbers[n]那样使用。 -
看起来你刚刚开始使用 C++,学习它的最佳场所不是 Hackerrank,而是更正式的介绍和适当的参考资料。挑战对测试你的知识很有帮助,但你需要一个基础。