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

Объявить структуру содержащую данные для построения круга

26.06.2015, 09:23. Показов 1882. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: описать переменную, которая содержит все данные для построения круга в декартовой системе координат. Записать в файл информацию о нескольких кругах. Выбрать круги, площадь которых меньше S.

Написал код, но почему-то программа работает неправильно и все время выдает значение 1. Я новичок в этом деле, подскажите в чем моя ошибка, пожалуйста.

Код программы:
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
#include<stdio.h>
#include <io.h>
#include <string.h>
#include <fstream>
#include <iostream>
 
using namespace std;
 int main()
{ struct krugi
     {
        float radius;
        float x;
        float y;
        int nomer;
        };
    krugi krug;
    int i,n;
    FILE *in1;
    const char* file_name1="krugi2.txt";
    in1=fopen(file_name1, "wb");
    cout<<"vvedite kol-vo krugov\n";
    cin>>n;
    printf("\ninformacia o krugax: radius, x, y\n");
    for (i=0;i<n;i++)
    {
    cout << "\ninformacia o "<<i+1<<" kruge:\n";
    printf ("nomer ");
    scanf("%d",&krug.nomer);
    printf ("radius ");
    scanf("%d",&krug.radius);
    printf ("x ");
    scanf("%d",&krug.x);
    printf ("y ");
    scanf("%d",&krug.y);
    fwrite(&krug, sizeof(krugi), 1, in1);
 
 }
 fclose (in1);
float S;
 FILE *in2;
 const char* file_name="krugi.txt";
 in2=fopen(file_name,"rb");
 printf("vvedite zadannnyy ploshad ");
 scanf("%f",&S);
 while (!feof (in2))
 {
     fread(&krug, sizeof (krugi), 1,in2);
     if(feof (in2)) break;
 if(3.14*(krug.radius)*(krug.radius)<=S) cout<<krug.nomer;
 }
 fclose(in2);
 return 0;
 
 
 }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.06.2015, 09:23
Ответы с готовыми решениями:

В програме опишите структуру, содержащую данные
В програме опишите структуру, содержащую данные о домашнем адресе (улица,номер дома и квартиры).Создайте экземпляр такой структуры и...

Создать структуру Hotel, содержащую следующие данные
Решите следующую задачу, используя структуры. При решении задач использовать функции: Создать структуру Hotel, содержащую...

Создать структуру, содержащую информацию о гостинице: список гостей, паспортные данные
Здравствуйте. Помогите cоздать структуру, содержащую информацию о гостинице: список гостей, паспортные данные, даты приезда и отъезда,...

5
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
26.06.2015, 10:25
C++
1
2
3
4
5
    scanf("%d",&krug.radius);
    printf ("x ");
    scanf("%d",&krug.x);
    printf ("y ");
    scanf("%d",&krug.y);
Для float - %f
0
0 / 0 / 1
Регистрация: 26.06.2015
Сообщений: 16
26.06.2015, 10:53  [ТС]
Спасибо, но программа все также работает неправильно.
0
2 / 3 / 2
Регистрация: 18.04.2015
Сообщений: 43
26.06.2015, 12:04
Вот мой вариант. Немного по-другому сделано, но работает. (писалось в NetBeans в Ubuntu). Делалось быстро.

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 <fstream>
 
 
using namespace std;
float PI=3.14;
 
/*
 * 
 */
struct cercle{
    int radius;
    int x;
    int y;
};
 
int main(int argc, char** argv) {
    ifstream fin("cercles.txt");
    if (!fin)cout<<"Невозможно открыть файл"<<endl;
    cercle * krugl = new cercle [10];
    for (int z=0;z<10;z++){
        fin>>krugl[z].x;
        fin>>krugl[z].y;
        fin>>krugl[z].radius;
    }
    for (int z=0;z<2;z++){
        cout<<krugl[z].x<<endl;
        cout<<krugl[z].y<<endl;
        cout<<krugl[z].radius<<endl;
    }
    
    int count, x, y, r;
    cout<<"Введите информацию о кругах: "<<endl;
    cout<<"Введите количество кругов: ";
    cin>>count;
    cercle * krugi = new cercle [count]; //динамический массив для хранения данных по кругам
        for (int z=0;z<count;z++){                           //цикл ввода данных по кругам
            cout<<"Введиет координеты цента "<<z+1<<" круга: ";
            cin>>x>>y;
            cout<<"Введите радиус "<<z+1<< " круга: ";
            cin>>r;
            krugi[z].x=x;
            krugi[z].y=y;
            krugi[z].radius=r;
        }
    ofstream fout ("cercles.txt");
    for (int s=0;s<count;s++){
        fout<<krugi[s].x<<' ';
        fout<<krugi[s].y<<' ';
        fout<<krugi[s].radius<<endl;
    }
    
    cout<< "Выбрать круги площадь которых меньше: ";
    float s;
    cin>>s;
    float * squares = new float [count];
    for (int x=0;x<count;x++){
        squares[x]=PI*krugi[x].radius*krugi[x].radius;
    }
    for(int x=0;x<count;x++){
        if(squares[x]<s)
            cout<<"Площадь круга "<<x+1<<" меньше "<<s<<endl;
    }
 
    return 0;
}
Если нужно будет, я думаю, нюансы сами сможете доделать. Не забудьте добавить удаление динамических массивов.
0
0 / 0 / 1
Регистрация: 26.06.2015
Сообщений: 16
26.06.2015, 21:42  [ТС]
Спасибо все верно работает, но хотелось бы понять в чем же ошибка в моем коде?
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
26.06.2015, 23:02
Цитата Сообщение от lamp Посмотреть сообщение
в чем же ошибка
может в том, что пишете в один файл, а читаете из другого?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.06.2015, 23:02
Помогаю со студенческими работами здесь

Разработать структуру "Отель", содержащую данные об объекте
Структура отель. Поле тип (туристический , гостиница, длительного проживания), поле количество звёзд отеля, поле количество номеров, поле...

Описать переменную круг, в которой содержатся все дан* ные для построения круга в декартовой системе координат
Описать переменную круг, в которой содержатся все дан* ные для построения круга в декартовой системе координат. а) Определить...

Объявить структуру, содержащую строки, соответствующие имени и фамилии человека
Всем привет форумчане!Прошу помочь найти ошибку в программном коде! Вот задание:Объявить структуру, содержащую строки, соответствующие...

Сформировать динамическую структуру, содержащую данные по студентам
Сформировать динамическую структуру вид структуры , содержащую данные по студентам в следующем виде: &quot;Фамилия Имя Группа ГР RS&quot;,...

Сформировать динамическую структуру (вид структуры - список), содержащую данные по студентам
Сформировать динамическую структуру (вид структуры - список), содержащую данные по сту- дентам в следующем виде: &quot;Фамилия...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
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 На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru