Форум программистов, компьютерный форум, киберфорум С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/103: Рейтинг темы: голосов - 103, средняя оценка - 4.78
1 / 1 / 4
Регистрация: 18.10.2017
Сообщений: 232
1

Какой тип данных для слов?

18.10.2018, 20:36. Показов 18979. Ответов 6

Author24 — интернет-сервис помощи студентам
Есть программа -
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cstdlib>
#include <cmath>
 
using namespace std;
class CState{
};
    void INF(){
        char stran ;
        char stolic ;
        int ZITELI;
        int PLOSCHA;
    std::cout << "Укажите страну  ->  " ;
    std::cin >> stran;
    std::cout << "Укажите столицу  ->  ";
    std::cin >> stolic;
    std::cout << "Укажите кол-ство жителей в стране  ->  ";
    std::cin >> ZITELI;
    std::cout << "Укажите площать страны  ->  ";
    std::cin >> PLOSCHA;
    }
    void RESULT (){
        int ZITELI;
        int PLOSCHA;
        char stran=10;
        char stolic=10;
        float R;
        R = ZITELI/PLOSCHA;
 
        std::cout << "Страна -   " << stran <<endl;
        std::cout << "Столица -   " << stolic <<endl;
        std::cout << "К-ство жителей =   " << ZITELI <<endl;
        std::cout << "Площадь =   " << PLOSCHA <<endl;
        std::cout << "Средняя плотность населения =   " <<R <<endl;
 
    }
int main()
{
     setlocale(LC_CTYPE, "rus");
     INF();
     RESULT();
 
    return 0;
}
НУжно чтоб я в 1 и 2 случае писал слова,а потом оно их выводило,но когда пытаюсь написать более 2 букв,то прога срабатывает до конца и не дает больше ничего ввести.Когда пишу 1 букву или цифру,то пропускает дальше

И еще 1 трабл: Хоть R - float ,но при делении мне выдает целое число.Подскажите как исправить?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.10.2018, 20:36
Ответы с готовыми решениями:

Какой тип данных нужен для возведения в степень
Добрый день. При возведении числа в степень столкнулся с проблемой, что при возведении числа 9 в 8 степень (как пример) выдает абракадабру...

Какой тип данных использовать для работы с большими числами?
Здравствуйте! Какой тип данных можно использовать для больших чисел( unsigned long long не получается)?

Enum и типы данных. Как задать тип значений явно, и какой тип будет при переполнении?
Пытаюсь сделать функцию с передачей нескольких параметров,используя битовые операции. В качестве параметров думаю использовать не...

6
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
18.10.2018, 20:53 2
Лучший ответ Сообщение было отмечено dastreba как решение

Решение

Для названия страны и столицы используй тип string (#include <string>). Тип char может хранить только один символ.
setlocale(LC_CTYPE, "rus") влияет только на вывод кириллицы. Если ввести кириллицу, а потом вывести, тебя ждёт сюрприз.
Используй заголовок <Windows.h> и, вместо setlocale(), используй
C++ Скопировано
1
2
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
Цитата Сообщение от dastreba Посмотреть сообщение
Хоть R - float ,но при делении мне выдает целое число
ZITELI и PLOSCHA оба типа int. Значение выражения ZITELI/PLOSCHA будет int, и будет использовано целочисленное деление. Потом результат будет преобразован к float.

Что бы выражение считалось правильно нужно что бы хотя бы один из операндов был плавающего типа. Решения два:
  1. Сделать PLOSCHA типом float. Я бы сказал, что это логично.
  2. Привести один из операндов к типу float. Например так: ZITELI/(float)PLOSCHA
1
1 / 1 / 4
Регистрация: 18.10.2017
Сообщений: 232
18.10.2018, 21:31  [ТС] 3
Спасибо большое
0
1 / 1 / 4
Регистрация: 18.10.2017
Сообщений: 232
20.10.2018, 14:36  [ТС] 4
Вот рабочая программа -
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <Windows.h>
 
using namespace std;
class CState{
    char stran[10];
    char stolic[10];
    int ZITELI;
    float PLOSCHA;
 public:
 
    void First();
    void Second();
};
int main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    CState Info;
    CState Result;
 
 
    Info.First();
 
 
 
    Info.Second();
 
    return 0;
}
void  CState::First()
{
    cout << "Країна : ";
      cin.getline(stran, 10);
    cout << "Столиця : ";
      cin.getline(stolic, 10);
        cout << "К-ство жителей  : ";
      cin>>ZITELI;
    cout << "Площа : ";
      cin >> PLOSCHA;
 
 
 
};
void  CState::Second()
{
    cout << " " << endl;
    cout << "Країна : "<<  stran << endl;
    cout<< "Столиця : "<< stolic << endl;
    cout<< "К-сть жителiв  :  "<<ZITELI << endl ;
    cout<< "Площа :  "<<PLOSCHA<< endl;
    cout << " " << endl;
    cout << "                                          Средняя плотность населения =   " << ZITELI/PLOSCHA <<endl;
    cout << " " << endl;
};
0
1 / 1 / 4
Регистрация: 18.10.2017
Сообщений: 232
25.10.2018, 11:30  [ТС] 5
Вот еще вариант -
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <cstdlib>
#include <cmath>
 
using namespace std;
class CState
{
private:
    char stran[10];
    char stolic[10] ;
    double ZITELI;
    double PLOSCHA;
public:
    void INF()
    {
        std::cout << "Укажите страну  ->  " ;
        std::cin >> stran;
        std::cout << "Укажите столицу  ->  ";
        std::cin >> stolic;
        std::cout << "Укажите кол-ство жителей в стране  ->  ";
        std::cin >> ZITELI;
        std::cout << "Укажите площать страны  ->  ";
        std::cin >> PLOSCHA;
    }
    void RESULT ()
    {
 
 
        std::cout << "Страна -   " << stran <<endl;
        std::cout << "Столица -   " << stolic <<endl;
        std::cout << "К-ство жителей =   " << ZITELI <<endl;
        std::cout << "Площадь =   " << PLOSCHA <<endl;
 
    }
    double SERCH(){
    return ZITELI/PLOSCHA;
    }
};
 
int main()
{
    system("chcp 1251");
    CState kr;
    kr.INF();
    cout << "Средняя площадь -  " << kr.SERCH() << endl;
    kr.RESULT();
 
    return 0;
}
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.10.2018, 15:37 6
Цитата Сообщение от dastreba Посмотреть сообщение
Вот рабочая программа
введите Мадагаскар с его столицей и посмотрите какая она рабочая
выше ведь ясно говорилось:
Цитата Сообщение от L0M Посмотреть сообщение
Для названия страны и столицы используй тип string (#include <string>).
1
1 / 1 / 4
Регистрация: 18.10.2017
Сообщений: 232
28.10.2018, 14:32  [ТС] 7
Я сделал чуть проще
C++ Скопировано
1
2
char stran[30];
    char stolic[30] ;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2018, 14:32
Помогаю со студенческими работами здесь

Какой тип данных лучше подойдет для приложения, которое делит числа int или float?
Ответ написал int Хотя нутром чую, что float

Какой тип лучше использовать для расположения тестовых данных?
доброго времени суток имеется файл, в котором есть последовательность данных для теста - последовательность вопросов и вариантов ответов...

Путаница с типами данных TCHAR и char. Какой тип данных выбрать?
Я создавал тему в соседнем разделе:https://www.cyberforum.ru/cpp-networks/thread1119035.html Насколько я понял, то POST-данные в TCHAR...

Как проверить какой тип данных вводится?
Доброго времени суток. Подскажите пожалуйста!С клавиатуры вводится два целых числа.Как после ввода проверить,что было введено именно...

Геометрическая прогрессия: какой тип данных определить
Привет, форумчане! В CPP я еще очень и очень зеленый, поэтому, нужна ваша помощь. Есть проблема с определением типа данных для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH 1. поймать путь через вывод $(pwd) 2. более правильно - на основе realpath (см. скриншот)
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
PHP 8: JIT-компиляция и улучшение производительно­сти
Jason-Webb 13.03.2025
PHP никогда не славился своей скоростью. Многие сталкивались с проблемами производительности при работе со сложными вычислениями или обработкой больших объемов данных. Традиционная модель выполнения. . .
Сериализация данных с Apache Avro в Kafka
Javaican 12.03.2025
Apache Kafka стала одним из ключевых решений для работы с большими потоками данных. Однако с ростом объемов передаваемых данных возникает проблема: как эффективно сериализовать и десериализовать. . .
Создание потребителей Kafka с помощью Reactor Kafka
Javaican 12.03.2025
Reactor Kafka — это библиотека, объединяющая Apache Kafka с реактивным программированием на базе Project Reactor. Такое сочетание позволяет строить неблокирующие, асинхронные приложения с контролем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер