Перевод числа из метров в километры

Уровень сложности:

Программа должна переводить число, введенное с клавиатуры в метрах, в километры.

Поверьте, проще задания не бывает, организуйте ввод числа, а с переводом проблем возникнуть не должно. Вводная статья по С++ приводит пример, в котором как раз организован ввод. Для более лучшего понимания того, что нужно сделать, публикую результат работы программы. Нечто подобное и у вас должно получиться.

#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 километра
Следующие статьи помогут вам в решении данной задачи:
Автор: Marienko L.
Дата: 01.10.2012
Поделиться:

Комментарии

  1. 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';
    }
  2. 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);
    
    }
  3. 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;

    }

  4. Makc _face

    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 ибо не все поймут!

  5. 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;
    }
  6. Crypdr

    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;
     }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.