Другие языки программирования и технологии

Как в C++ приравнять переменную и текст? А то такую запись нельзя. А без этого задачу не решить

#include
using namespace std;
int main()
{
int a,b,c,black;
cin>>a>>b>>c;
if((a==black and b==black and c!=black) or (a==black and c==black and b!=black)
or (b==black and a==black and c!=black) or (b==black and c==black and a!=black)
or (c==black and a==black and b!=black) or (c==black and b==black and a!=black))
{cout<<a<<endl<<b<<endl<<c;}
else
{cout<<"error";}

}
В таком духе:

#include <iostream>
#include <string>

using namespace std;

int main()
{
string a, b, c;
cin >> a >> b >> c;
if ((a == "black" && b == "black" && c != "black") || (a == "black" && c == "black" && b != "black")
|| (b == "black" && a == "black" && c != "black") || (b == "black" && c == "black" && a != "black")
|| (c == "black" && a == "black" && b != "black") || (c == "black" && b == "black" && a != "black"))
{
cout << a << endl << b << endl << c;
}
else
{
cout << "error";
}

system("pause");
return 0;
}
Master-Plit Конструктор
8 552
Лучший ответ
Ырысбек Марипбек Уулу Я так понимаю, что если в файле будет написано black black blue, то ваш светофор исправен?!
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <set>
using namespace std;
struct TrafficLight final {
TrafficLight() : status(false) {}
vector<string> lights;
bool status;
bool load(const string& path) {
ifstream ifs(path);
if (ifs.is_open() && !ifs.bad()) {
string light;
while (getline(ifs, light)) lights.emplace_back(light);
ifs.close();
return true;
}
return false;
}
void check() {
set<vector<string>> box{
{ "black", "black", "green" },
{ "black", "black", "GREEN" },
{ "black", "yellow", "black" },
{ "red", "black", "black" },
{ "red", "yellow", "black" },
{ "black", "YELLOW", "black" }
};
if (box.count(lights)) status = true;
}
bool save(const string& path)const {
ofstream ofs(path);
if (ofs.is_open()) {
if (status) {
string res;
for (const auto &light : lights) res += light + '\n';
if (!res.empty()) res.erase(res.end() - 1);
ofs << res;
} else {
ofs << "error";
}
ofs.close();
return true;
}
return false;
}
};
int main() {
auto flag = false;
TrafficLight tl;
if (tl.load("INPUT.TXT")) {
tl.check();
if (!tl.save("OUTPUT.TXT")) {
cout << "Error saving!";
flag = true;
}
} else {
cout << "Error loading!";
flag = true;
}
if (flag) {
cout.put('\n');
system("pause");
}
}
нельзя if((a==black так как black не имеет значения
endl откуда взялся?
сформулируй задачу на простом великом и могучем языке
Вопрос непонятен. Что должен делать этот код? Тут ошибка: переменной black не присвоено значение.
Вместо кучи сравнений можно было сделать массив и подсчёт числа элементов массива, равных заданному. Код был бы короче и понятней.
Гурген Мурадян
Гурген Мурадян
58 065
Сергей Левушкин мне нужно решить задачу. Где вводят не числа, а текст. И я хочу присвоить не переменную black . А текст black .
Сергей Левушкин такое осуществимо?