Форум программистов, компьютерный форум CyberForum.ru

Указатели на структуры! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить период последовательности http://www.cyberforum.ru/cpp-beginners/thread254772.html
Подскажите, как вычислить период последовательности. Как я понимаю, поместить сперва элементы в массив, и уже в нем считать период? ... long t, k, p, a, c, n=20; // p - Xo, t, k - Xn, int i, g, m=8; // m - кол-во элементов, которое надо найти printf ("Vvedite Xo, A, C \n"); scanf ("%d", &p); scanf ("%d", &a); scanf ("%d", &c);
C++ Определите класс «Студент» Помогите пожалуйста с задачей Определите класс «Студент».Методы – перевод на следующий курс, выпуск, отчисление. Разработать дружественную классу «Студент» функцию, определяющую знак зодиака, под которой студент родился. http://www.cyberforum.ru/cpp-beginners/thread254763.html
C++ решить функцию
Всем привет! помогите пожалуйста решить задачки на Borland C Буду крайне признательна! Заранее спасибо!
Дни, месяц и Год C++
Даны три целых числа D - день, M - месяц, Y - год некоторого года. Печать на экран дату следующего месяца (+31 день). прошу код на Си
C++ Программа на работу с двусвязными списками http://www.cyberforum.ru/cpp-beginners/thread254734.html
Ни в коем случае не допускается динамическое создание новых узлов и простое копирование в них информации из уже существующих узлов списков. Все операции по перемещению узлов внутри списка или между списками обязательно должны производиться с помощью переназначения указателей на узлы. По окончанию сезона сформированы два списка хоккейных команды: высшая лига и первая. Каждый узел списков содержит...
C++ Строки! Ввести слова в строку. Затем ввести приставку. Затем вывести слова из строки с приставкой( по отдельности) . Не использовать имеющиеся в языке средства обработки строк. подробнее

Показать сообщение отдельно
Дима-Дима
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 63

Указатели на структуры! - C++

10.03.2011, 11:46. Просмотров 297. Ответов 0
Метки (Все метки)

Захватить память для массива из 10 структур.
Заполните массив данными из файла "1.dat".
Вывести информацию о маршрутах, имеющих определенный пункт в качестве начального или конечного. Высчитать для них среднюю длину.
Перед завершением программы освободить память.
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 "stdio.h"
using namespace std;
struct MARSH
{
    char start_name[20];
    char finish_name[20];
    int nom_msrsh;
    int dl_msrsh;
};
void main()
{
    int y=0, d=0;
    MARSH mas[10];
    MARSH *pmas;
    pmas=&mas[10];
    FILE *f1;
    f1 = fopen("1.bin","r+b");
    while(true)
    {
               fread(&pmas,sizeof(pmas),1,f1);
               if(!feof(f1)) break;
               else {pmas++; ++y;}
    }
    for (int i=0;i<y; i++)
        {
               if((*pmas).start_name[i]!=NULL && (*pmas).finish_name[i]!=NULL)
               {
                   cout<<"nachal'nii punkt"<<endl;
                   cout<<(*pmas).start_name<<endl;
                   cout<<"konechnii punkt"<<endl;
                   cout<<(*pmas).finish_name<<endl;
                   cout<<"Nomer marshruta"<<endl;
                   cout<<(*pmas).nom_msrsh<<endl;
                   cout<<"Dlina marshruta"<<endl;
                   cout<<(*pmas).dl_msrsh<<endl;
                   d+=(*pmas).dl_msrsh;
                   pmas++;
               }
        }
    cout<<"Srednay dlina="<<d/y<<endl;
    fclose(f1);
 
}
Это я написал, а вот как исправить, чтоб работало, не знаю.
Вот предыдущая программа, которая записывает в "1.dat"
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
#include "iostream"
#include "stdio.h"
using namespace std;
struct MARSH
{
    char start_name[20];
    char finish_name[20];
    int nom_msrsh;
    int dl_msrsh;
}sp;
void main()
{
    FILE *f1;
    f1 = fopen("1.bin","a+b");
    int n;
    cout<<"Vvedite kol-vo zapisey"<<endl;
    cin>>n;
    MARSH mas[100];
    MARSH *pmas;
    pmas=&mas[n];
    for (int i = 0; i < n; i++)
    {
        cout<<"Vvedite nachal'nii punkt"<<endl;
        cin>>pmas[i].start_name;
        cout<<"Vvedite konechnii punkt"<<endl;
        cin>>pmas[i].finish_name;
        cout<<"Nomer marshruta"<<endl;
        cin>>pmas[i].nom_msrsh;
        cout<<"Dlina marshruta"<<endl;
        cin>>pmas[i].dl_msrsh;
    }
    fwrite(&pmas,sizeof(pmas),n,f1);
    fclose(f1);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru