0
Неправильный вывод данных в задании 53.2
Когда проводиться 3 тест то при в вводе лошадиных сил 1200 выводит 12000, даже фиксировал строку "fixed<<setw(4)" ничего не помогало.
16 ответов
+ 4
Владислав
Problem is in printing value. You are printing x in that method and also there is one print statement in main() method which is adding 0
So just do this
Проблема в печатном значении. Вы печатаете x в этом методе, а также есть один оператор печати в методе main (), который добавляет 0
Так что просто сделай это
if (x > 800) {
cout << "Too much" << "\n";
horsepowers = x;
} else {
horsepowers = x;
}
+ 3
Владислав
Share your code so we can tell where is the problem.
Поделитесь своим кодом, чтобы мы могли понять, в чем проблема.
+ 2
Владислав
No need to set precision. You just need to do this
Нет необходимости устанавливать точность. Вам просто нужно это сделать
void setHorsepowers(int x) {
if (x > 800)
cout << "Too much" << "\n";
horsepowers = x;
}
//complete the getter function
int getHorsepowers() {
return horsepowers;
}
+ 2
Владислав
Just replace your code with my shared code. It will work fine.
Просто замените свой код моим общим кодом. Будет работать нормально.
+ 2
Владислав
Check the difference in your condition and my condition. "Too much" will also print.
I did
Проверьте разницу в вашем состоянии и моем состоянии. Слишком много также будет напечатано.
я сделал
if (x > 800)
cout << "Too much" << "\n";
horsepowers = x;
+ 2
Владислав
Here is complete solution
Вот полное решение
https://code.sololearn.com/cTjYTYbR4jec/?ref=app
+ 2
Владислав
Can you show your latest updated code?
Можете ли вы показать свой последний обновленный код?
+ 1
#include <iostream>
#include <iomanip>
using namespace std;
//определение класса
class Car{
//private зона
private:
int horsepowers;
//public зона
public:
//завершите функцию setter
void setHorsepowers(int x) {
if(x>800){
cout<<("Too much")<<endl<<fixed<<setprecision(4)<<x;
}
else
{
horsepowers=x;
}
}
//завершите функцию getter
int getHorsepowers() {
return horsepowers;
}
};
int main() {
//получаем входные данные
int horsepowers;
cin >> horsepowers;
//создаем объект для класса Car
Car car;
//указываем значение private элемента
car.setHorsepowers(horsepowers);
//выводим значение private элемента
cout << car.getHorsepowers();
return 0;
}
+ 1
Проверил, аналогичная ошибка только там не 12000, а 0. Тоесть выводить переменную с too much обязательно
+ 1
Вот скриншот https://imgur.com/gallery/GFNzRix
+ 1
Понятно, спасибо!
0
Мне кажется мы всё правильно делаем, а вот тест говорит обратное
0
Можно сделать костыль, сделать целое строковым и вывести?
Ограничив до 4 букв
0
Который использую сейчас?
0
#include <iostream>
#include <iomanip>
using namespace std;
//определение класса
class Car{
//private зона
private:
int horsepowers;
//public зона
public:
//завершите функцию setter
void setHorsepowers(int x) {
if(x>800){
cout<<("Too much")<<endl<<x;
}
else
{
horsepowers=x;
}
}
//завершите функцию getter
int getHorsepowers() {
return horsepowers;
}
};
int main() {
//получаем входные данные
int horsepowers;
cin >> horsepowers;
//создаем объект для класса Car
Car car;
//указываем значение private элемента
car.setHorsepowers(horsepowers);
//выводим значение private элемента
cout << car.getHorsepowers();
return 0;
}
0
Попробуйте выставить этот код в это практическое задание