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

Cтруктура: расчет количества библиотек на 1000 жителей.

01.02.2013, 00:49. Показов 2502. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить программу, в которой описывается структура из полей: Город, Количество жителей, Количество библиотек. Организовать ввод структурных переменных, вывод каждой структуры на экран и расчет количества библиотек на 1000 жителей.
Кол-во библиотек на 1000 жителей = Количество библиотек / Количество жителей / 1000.


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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <cstring>
#include <windows.h>
#include <stdio.h>
#include <clocale>
 
 
using namespace std;
 
struct library{
    char city[20];
    int people;
    int klib;
    library *next;
};
 
void wwod(library *tek){
 
    cout<<"Введите город: ";
    gets(tek->city);
    cout<<"Введите количество жителей: ";
    cin>>tek->people;
    cout<<"Введите количество библиотек: ";
    cin>>tek->klib;
    cout<<endl;
 
}
 
 
void wywod(library tek){
    cout<<"Город"; for(int i = 0; i<strlen(tek.city); i++) cout<<tek.city[i]; cout<<endl;
    cout<<"количество жителей: "<<tek.people<<endl;
    cout<<"Количество библиотек: "<<tek.klib<<endl;
}
 
void kolvo ( library tek)
{
  int s1,s2;
  s1=a.klib/a.people/1000;
  cout <<"\nГород: ";
  for (int i = 0; i<strlen(a.city); i++) cout<<a.city[i]; cout<<endl;
  cout <<"Количество бибилиотек на 1000 жителей: "<<s1;
  s2=b.klib/b.people/1000;
  cout <<"\nГород: ";
  for (int i = 0; i<strlen(b.city); i++) cout<<b.city[i]; cout<<endl;
  cout <<"Количество бибилиотек на 1000 жителей: "<<s2;
}
 
 
 
int main()
{   setlocale(LC_ALL, "Russian");
    library *nach, *kon, *tek, *old, *new_n;
    char yn='Да';
    nach=0;
    kon=0;
    do
    {
    new_n=new library;
    wwod(new_n);
    new_n->next=0;
    if (nach)
    {
        kon->next=new_n;
        kon=new_n;
    }
    else
    {
        nach=new_n;
        kon=new_n;
    }
    cout <<"\nБудете добавлять новые данные ? (Да/Нет)";
    cin >> yn;
    }
     while ((yn!='Да')||(yn!='да'));
 
 
 tek=nach;
 while (tek)
 {
    cout<<"Город: "<<tek->city;
    cout<<"количество жителей: "<<tek->people;
    cout<<"Количество библиотек: "<<tek->klib;
    old=tek;
   tek=tek->next;
   delete old;
 
 }
 
 kolvo(new_n);
wywod(new_n);
 
 
    return 0;
}
Я что-то пыталась сделать, но слишком много всего получилось. Задача то простая, но из-за ввода неопределенного количества структур я путаюсь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.02.2013, 00:49
Ответы с готовыми решениями:

Вывод городов по убыванию количества жителей
На заданный список городов как вывести список в порядке убывания количества жителей. как то использовать базу фактов вида ...

Упорядочить файл структур по убыванию количества жителей (при равенстве - по возрастанию площади)
Есть задача. Меня конкретно интересует как упорядочить по возрастанию площади, если количество жителей одинаковое. У меня расставляет по...

Разработать программу для вычисления плотности населения, площади района и количества жителей
Всем доброго времени суток! Прошу помочь мне написать код программы на языке Delphi исходя из следующих условий: &quot;Разработать...

4
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
01.02.2013, 01:37
Путаетесь вы с самоадресацией, советую создать отдельно программу, в которой будет след. структура:
C++
1
2
3
4
5
struct A
{
    int a;
    A *next;
};
дальше организовать ввод, вывод и потом уже возвращаться к своей проге. И можно будет все дело загнать в контейнер STL или массив.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
01.02.2013, 02:26
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
#include <iostream>
#include <algorithm>
#include <iterator>
 
struct CityInfo
{
    char Name[20];
    int PeopleCount;
    int LibrariesCount;
};
 
std::ostream& operator<<(std::ostream &out, const CityInfo &city)
{
    out<<"City name: "<<city.Name<<", number of people: "<<city.PeopleCount<<", libraries count: "<<city.LibrariesCount;
    return out<<". Libraries count - 1000: " << city.LibrariesCount/(city.PeopleCount/1000) << std::endl;
}
 
void InputCityData(CityInfo &city)
{
    std::cin.ignore();
    std::cout<<"Name: ", std::cin.getline(city.Name, 20);
    std::cout<<"People count: ", std::cin>>city.PeopleCount;
    std::cout<<"Libraries: ", std::cin>>city.LibrariesCount;
}
 
int main()
{
    int count;
    CityInfo *Cities;
    std::cout<<"Cities count: ", std::cin>>count;
    Cities = new CityInfo[count];
    std::for_each(Cities, Cities+count, InputCityData);
    std::copy(Cities, Cities+count, std::ostream_iterator<CityInfo>(std::cout));
    delete[] Cities;
}
1
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 31
04.02.2013, 22:58  [ТС]
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
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
 
using namespace std;
 
struct library
    {char city[25];
        int people;
        int libraryCount;
    };
library mass[2];
int j=0;
 
int input ()
{SetConsoleCP(1251);
SetConsoleOutputCP(1251);
    cout<<"Введите город: ";
    fgets(mass[j].city, 25, stdin);
    cout<<"\n Введите количество жителей: ";
    cin>>mass[j].people;
    cout<<"\n Введите количество библиотек: ";
    cin>>mass[j].libraryCount;
    cout<<"\n";
    cin.clear();
    cin.sync();
return 0;}
 
int output (int kolvo[2])
{
int i;
for (i=0; i<=j; i++)
    {cout<<"Город: "<<mass[i].city<<"\n";
    cout<<"Жители: "<<mass[i].people<<"\n";
    cout<<"Количество бибилотек: "<<mass[i].libraryCount<<"\n";
    cout<<"Количество бибилотек на 1000 жителей: "<<kolvo[i]<<"\n";
    }
return 0;
}
int kol ()
{int i;
int kolvo[2];
    for(i=0; i<=1; i++)
    kolvo[i]=mass[i].libraryCount/(mass[i].people/1000);
    output(kolvo);
return 0;}
 
int main ()
{setlocale (LC_ALL, "Russian");
cout<<"Введите структуры.\n";
int p=0;
while (p==0)
{
    cin.clear();
    cin.sync();
input();
 
cout<<"Хотите ввести еще структуру? 0 - да или 1 - нет?";
cin>>p;
j++;
}
 
kol();
getch();
return 0;}
Не могу понять, почему после того как прекращаешь вводить данные, программа закрывается с ошибкой.
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,859
05.02.2013, 04:35
Цитата Сообщение от Nastya555 Посмотреть сообщение
Не могу понять, почему после того как прекращаешь вводить данные, программа закрывается с ошибкой.
к сожалению не имею пригодного компилятора, чтобы собрать ваш код, т.к. он написан в нарушение базовых соглашений, но по беглому осмотру сразу видна явная ошибка :

после этой операции
C++
1
2
cin>>p;
j++;
счётчик структур (кстати не стоило для этого заводить глобальные переменные и засорять пространство имён такими малопонятными j) икримируется в не зависимости от результата p, т.е. если ввести что 0, что 1 - прибавиться якобы новая структура... отлично, смотрим дальше

C++
1
kolvo[i]=mass[i].libraryCount/(mass[i].people/1000);
что это?
у этой якобы структуры сразу начнёт что-то считаться... и могу сделать однозначный вывод - падает это тут
C++
1
/(mass[i].people/1000)
из за деления на ноль

на всякий случай впихните туда так
C++
1
kolvo[i]=mass[i].libraryCount/((mass[i].people+1e-8)/1000);
и не создавайте лишнюю структуру
C++
1
if (p==0) j++;
если будет всё равно вылетать - тут уж сорри, у меня нет такого компилятора, который бы это схавал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.02.2013, 04:35
Помогаю со студенческими работами здесь

Известно число жителей в каждом доме улицы. На какой стороне улицы проживает больше жителей
4. Известно число жителей, проживающих в каждом доме улицы. Нумерация домов проведена подряд. Дома с нечетными номерами расположены на...

Расчет количества
Есть таблица под названием &quot;Корреспонденция&quot;с полем &quot;отдел&quot;, и есть таблица &quot;Отделы&quot; как мне расчитать какое количество...

Вывести список республик с указанием плотности населения и количества больниц на 1000 человек
Таджикистан, Молдавия, Украина. Напечатать список республик, указав плотность населения, число школ и больниц, приходящихся на 1000 человек.

Расчет количества за период
Помогите пожалуйста как сделать расчет в программе на Delphi 7 количеств учащихся за определенный период находящихся в БД Access и просто...

Расчет количества информации
1) Определить, какой объем информации содержит экран монитора, разрешающая способность которого 1280x1024 точек, если каждая точка может...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru