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

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

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

Студворк — интернет-сервис помощи студентам
Есть программа -
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
Лучший ответ Сообщение было отмечено 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  [ТС]
Спасибо большое
0
1 / 1 / 4
Регистрация: 18.10.2017
Сообщений: 232
20.10.2018, 14:36  [ТС]
Вот рабочая программа -
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  [ТС]
Вот еще вариант -
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
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.10.2018, 15:37
Цитата Сообщение от dastreba Посмотреть сообщение
Вот рабочая программа
введите Мадагаскар с его столицей и посмотрите какая она рабочая
выше ведь ясно говорилось:
Цитата Сообщение от L0M Посмотреть сообщение
Для названия страны и столицы используй тип string (#include <string>).
1
1 / 1 / 4
Регистрация: 18.10.2017
Сообщений: 232
28.10.2018, 14:32  [ТС]
Я сделал чуть проще
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru