Программа должна переводить число, введенное с клавиатуры в метрах, в километры.
Поверьте, проще задания не бывает, организуйте ввод числа, а с переводом проблем возникнуть не должно. Вводная статья по С++ приводит пример, в котором как раз организован ввод. Для более лучшего понимания того, что нужно сделать, публикую результат работы программы. Нечто подобное и у вас должно получиться.
#include <iostream>
using namespace std;
int main()
{
setlocale (LC_ALL, "RUS");
cout<<"\t\t\tПеревод числа из метров в километры\n\n\n";
float a;
cout<<"Введите количество метров: ";
cin>>a;
cout<<"\n";
if (a==1)
{
cout<<a<<" метр будет "<<a/1000<<" километра "<<endl;
}
if (a>1&&a<=4)
{
cout<<a<<" метрa будет "<<a/1000<<" километра "<<endl;
}
if (a>=5&&a<1000)
{
cout<<a<<" метров будет "<<a/1000<<" километра "<<endl;
}
if (a==1000)
{
cout<<a<<" метров будет "<<a/1000<<" километр "<<endl;
}
if (a>1000&&a<=4900)
{
cout<<a<<" метров будет "<<a/1000<<" километрa "<<endl;
}
if (a>=5000)
{
cout<<a<<" метров будет "<<a/1000<<" километров "<<endl;
}
cout<<endl;
return 0;
}
Собственно, вот и он самый — долгожданный вывод программы:
CppStudio.com
Перевод числа из метров в километры Введите количество метров: 15 15 метров будет 0.015 километра
Комментарии
Lee Amstrong
С++11 (или 17, я с ним компилировал)
#include <iostream> #include <array> #include <string> #include <iomanip> //std::setprecision(1) //(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2) //лучше не вникать как она работает, я ее украл отсюда: //https://ru.wikipedia.org/wiki/Gettext //Пункт 2.2.2 Множественные числа //Пример использования этой функции будет ниже std::string pluralRusName(unsigned int n, std::array<std::string, 3> forms) { return forms.at(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); } int main(int argc, char const *argv[]) { std::cout << "Ввведите количество метров: " << '\n'; unsigned int meters; std::cin >> meters; double kilometers = meters / 1000; std::string meterName = pluralRusName(meters, {" метр ", " метра ", " метров "}); std::string kilometerName = pluralRusName((unsigned int)kilometers, {" километр ", " километра ", " километров "}); std::cout << meters << meterName << "равно " << std::fixed << std::setprecision(2) //Округление вводимых плавающих чисел до 2х знаков после запятой << kilometers << kilometerName << '\n'; }Alexander Trousevich
// Language: rust. Details: rust-lang.org // ну это просто совсем скукота какая-то =((( use std::io; fn main() { let mut buf = String::new(); io::stdin().read_line(&mut buf).expect("Invalid Input"); let meters: u32 = buf.trim().parse().expect("Not a number"); let kilometers: f64 = (meters as f64) / 1000.0; println!("Km: {}", kilometers); }Anton63
// Перевести метры в километры
#include <iostream>
using namespace std;
int main() {
float a;
cout << «\t\t\tПеревод числа из метров в километры\n\n»;
cout << «Введите количество метров: «;
cin >> a;
cout << «\n\n»;
cout << a << » метров будет » << a/1000 << » километра» << endl;
}
Makc _face
Автор сори но допустил ошибку! Если ввести 551(или т.п.) то оно видает «метров» а не метр! Лутше ориентироватса на последнюю цифру.
К примеру:
#include «stdafx.h»
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, «RUS»);
cout << «\t\t\tПеревод числа из метров в километры\n\n\n»;
float a;
int x;
cout << «Введите количество метров: «;
cin >> a;
cout << «\n»;
x = a;
x = x % 10;
if (x == 1)
cout << a << » метр будет » << a / 1000 << » километра » << endl;
if (x>1 && x <= 4)
cout << a << » метрa будет » << a / 1000 << » километра » << endl;
if (x >= 5 && x<10)
cout << a << » метров будет » << a / 1000 << » километра » << endl;
if (a == 0)
cout << a << » метров будет » << a / 1000 << » километр » << endl;
cout << endl;
system(«pause»);
return 0;
}
Но если учитывать то что етот материал росчитан на чайников то лутше делать без if ибо не все поймут!
UTFQ Копач
Почему так нельзя?! #include <iostream> using namespace std; int main(){ float num; cout<<"Enter your value in meters: "<<endl; cin>>num; cout<<"Your value in kilometers: "<<num/1000<<endl; return 0; }Crypdr
#include<iostream> using namespace std; int main() { setlocale(LC_ALL, "ru"); double meters; cout << "Введите количество метров: "; cin >> meters; cout << "\n\n"; cout << meters << " метров будет " <<meters/1000 <<" километра" << endl; return 0; }