Форум программистов, компьютерный форум, киберфорум
Наши страницы

Создание списка структур из структур исходного списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построить список слов, который есть в заданном тексте. Определить сколько раз встречается каждое слово в этом тексте. http://www.cyberforum.ru/cpp-beginners/thread888271.html
Здравствуйте у меня проблема, есть такое задание: Задан текст. Необходимо построить список слов, который есть в этом тексте. Определить сколько раз встречается каждое слово в этом тексте. Вот мой...
C++ Cоставить функцию, выводящую на экран слова, которые од-новременно содержатся в каждой из двух заданных строк Здравствуйте. Помогите составить функцию, выводящую на экран слова, которые од-новременно содержатся в каждой из двух заданных строк. В главной программе ввести с клавиатуры три строки длиной до 80... http://www.cyberforum.ru/cpp-beginners/thread888269.html
C++ Поиск отрицательых циклов в графе
подскажите пожалуйста, как определить, есть ли в графе отрицательные циклы....граф задаётся матрицей смежности P.S очень срочно нужно.....завтра контрольная, а я не могу в этом разобраться(
Обьясните что не так не могу понять C++
программа должна менять цвет bmp файла но при запуске выдает ошибку что 2 неразрешимых внешних элемента есть и все я пробовал разобраться но не получилось коментрарии были даны на паре преподом но...
C++ число цифр 3 в пятом представлении числа х http://www.cyberforum.ru/cpp-beginners/thread888247.html
По мат логике дано было задание: число цифр 3 в пятом представлении числа х. На бумаге задачу решил легко.Собственно вот решение Рисунок Надо написать под задачу программу на С++, а я в этом не...
C++ Ввод двумерного массива из файла #include "stdafx.h" #include <stack> #include <iostream> #include <string> #include <algorithm> #include <locale> const int OPEN_VAL = 0; const int CLOSE_VAL = 1; const int START_VAL ... подробнее

Показать сообщение отдельно
Bramme
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 60

Создание списка структур из структур исходного списка - C++

02.06.2013, 17:27. Просмотров 240. Ответов 0
Метки (Все метки)

Добрый день. В следующей программе, в функции nowaq не получается создать список из структур исходного списка(делаю по аналогии с функцией queue):
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <iostream>
 
#define Lmax 20
#define CLR while(fgetc(f)!='\n')
 
using namespace std;
 
struct ANK {char fam[Lmax], name[Lmax], otch[Lmax], pol[Lmax], date_of_birth[Lmax];};
struct ADD {char gosvo[Lmax], obl[Lmax], gor[Lmax], tel[Lmax];};
struct student {char fak[Lmax], group[Lmax]; ANK ank; ADD add; student *next,*last;};
 
student* queue(char name[]){
   student *tek,*queue=NULL,*posl;
   FILE *f;
   if (!(f=fopen(name,"r"))) puts("File not found");
   else
      {
       tek=(student*)malloc(sizeof(student));
       queue=tek;
      while(!feof(f)) {
            if(fgets(tek->fak,Lmax,f)) {
            tek->fak[strlen(tek->fak)-1]='\0';
            fgets(tek->group,Lmax,f);
            tek->group[strlen(tek->group)-1]='\0';
            fgets(tek->ank.fam,Lmax,f);
            tek->ank.fam[strlen(tek->ank.fam)-1]='\0';
            fgets(tek->ank.name,Lmax,f);
            tek->ank.name[strlen(tek->ank.name)-1]='\0';
            fgets(tek->ank.otch,Lmax,f);
            tek->ank.otch[strlen(tek->ank.otch)-1]='\0';
            fgets(tek->ank.pol,Lmax,f);
            tek->ank.pol[strlen(tek->ank.pol)-1]='\0';
            fgets(tek->ank.date_of_birth,Lmax,f);
            tek->ank.date_of_birth[strlen(tek->ank.date_of_birth)-1]='\0';
            fgets(tek->add.gosvo,Lmax,f);
            tek->add.gosvo[strlen(tek->add.gosvo)-1]='\0';
            fgets(tek->add.obl,Lmax,f);
            tek->add.obl[strlen(tek->add.obl)-1]='\0';
            fgets(tek->add.gor,Lmax,f);
            tek->add.gor[strlen(tek->add.gor)-1]='\0';
            fgets(tek->add.tel,Lmax,f);
            tek->add.tel[strlen(tek->add.tel)-1]='\0';
            posl=tek;
            tek=(student*)malloc(sizeof(student));
            tek->last=posl;
            posl->next=tek;
         }
      }
      posl->next=NULL;
      free(tek);
      }
   return(queue);
   }
 
student* nowaq(student *queue, char faks[][Lmax], int i){
    student *tek, *tek2, *queue2, *posl;
    tek=queue;
    tek2=(student*)malloc(sizeof(student));
    queue2=tek2;
    while(tek){
        if(strstr(tek->fak,faks[i])!=NULL){
            tek2=tek;
            posl=tek2;
            tek2=(student*)malloc(sizeof(student));
            posl->next=tek2;
        }
        tek=tek->next;
    }
    posl->next=NULL;
    free(tek2);
    printf("%s\n", queue2->group);
}
 
student* poiskmax(student *queue){
    student *tek;
    char faks[5][Lmax]; int i, j, tmp, kolf, kols[5]={0}; bool flag;
    tek=queue;
    strcpy(faks[0],tek->fak);
    tek=tek->next;
    kolf=1;
    i=1;
    while(tek){
        flag=true;
        for(j=0;j<kolf&&flag==true;j++)
            if(strstr(tek->fak,faks[j])!=NULL) flag=false;
        if(flag) {strcpy(faks[i++],tek->fak); kolf++; tek=tek->next;} else tek=tek->next;}
 
    for(i=0;i<kolf;i++){
        tek=queue;
        while(tek)
            if(strstr(tek->fak,faks[i])!=NULL) {kols[i]++; tek=tek->next;} else tek=tek->next;}
 
    for(i=0;i<kolf-1;i++){
        for(j=0;j<kolf-1;j++){
            if (kols[j + 1] > kols[j]){
                tmp = kols[j + 1]; kols[j + 1]=kols[j]; kols[j]=tmp;}}}
 
    nowaq(queue, faks, 0);
}
 
int main() {
setlocale(LC_ALL,"RUS");
student *first;
char name1[Lmax];
printf("Input file name: ");
gets(name1);
first=queue(name1);
poiskmax(first);
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.