gpt4 book ai didi

c++ - 这是什么代码?为何起作用? C++

转载 作者:行者123 更新时间:2023-12-02 09:53:30 25 4
gpt4 key购买 nike

除了最后一行,我几乎知道这段代码中的所有内容。判刑后他在做什么?那叫什么呢?我针对同一问题的代码几乎是原来的三倍。看到这个,我真的很震惊。我是c++的新手,这是我第一次看到这样的东西。我什至不知道您可以像他在代码中那样使用括号。如果您回答菜鸟友好,那就太好了。
谢谢

#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
string c[]={"","one","two","three","four","five","six","seven","eight","nine"};
cin>>a>>b;
for(int i=a;i<=b;i++)
cout<<((i<=9)?c[i]:((i%2==0)?"even":"odd"))<<endl;
}




现在我的代码
#include <iostream>
#include <cstdio>
using namespace std;

int main() {
// Complete the code.
int a;
int b;
cin >> a >> b;

for ( int n = a; n <= b; n++) {
if ( n >= 1 && n <= 9 ) {

string num;

switch(n) {
case 1:
num = "one";
break;
case 2:
num = "two";
break;
case 3:
num = "three";
break;
case 4:
num = "four";
break;
case 5:
num = "five";
break;
case 6:
num = "six";
break;
case 7:
num = "seven";
break;
case 8:
num = "eight";
break;
case 9:
num = "nine";
break;
}
cout << num << "\n" ;


} else if (n > 9 && n % 2 == 0) {
cout << "even \n" ;
} else {
cout << "odd \n" ; }

}

return 0;
}



最佳答案

通过分解原始代码,可以使它们更易于理解。首先包括:

#include <string>
#include <iostream>

然后定义数字常量:
const std::string number[] ={"zero","one","two","three","four","five","six","seven","eight","nine"};

然后定义一个执行丑陋的嵌套三元函数的函数:
std::string nameOf(int v) {
if (v < 10) {
return number[v];
}

if (v % 2 == 0) {
return "even";
}

return "odd";
}

然后,最终代码实际上非常简单:
int main()
{
int a,b;
std::cin >> a >> b;

for(int i=a; i<=b; ++i) {
std::cout << nameOf(i) << std::endl;
}

return 0;
}

三元( X ? Y : Z)测试表达式 X是否评估为真实值,如果是,则评估并返回表达式 Y。如果不是,则评估表达式 Z并返回。

这与没有返回值的常规 if不同,但是以相同的方式工作。

从可读性的 Angular 出发,您希望将三元运算符的使用量减至最少,这会使他们感到非常困惑。确实不需要使用嵌套三元数。

关于c++ - 这是什么代码?为何起作用? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62273434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com