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

Удалить из массива все элементы,в записи которых все цифры различны. - C++

Восстановить пароль Регистрация
 
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
02.10.2011, 07:23     Удалить из массива все элементы,в записи которых все цифры различны. #1
Ребят,помогите задачу решить:
в файле input.txt содержаться сведения о группе студентов в формате:
номер группы;
запись о каждом студенте группы содер сведения: фамилия, имя, отчество,год рожден, оценки по пяти предметам.
переписать данные в файл output.txt отсортировав их в алфавитном порядке по фамилии, имени, отчеству методом вставки

вот моя программа но я не знаю как применить мою сортитовку к файлу:

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
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
 
ifstream in("input.txt");
ofstream out("output.txt");
 
 struct array
{
    string name, surname, secondname;
    int num[5],year;
    string key;
    void print();
};
 
void array::print()
{
    out << setw(12) << left << surname  << setw(10) << name <<setw(15) << secondname;
    out << setw(5) << year;
    for (int i = 0; i  < 5; i++)
        out << setw(3) << num[i];
    out << setw(5) << key << endl;
}
 
void sort(array *a, int n)
{
    array temp;
    int i, j;
    for (i = 2; i <= n; i++)
    {
        j = i;
        while (a[j].key<a[j - 1].key)
        {
            temp = a[j];
            a[j] = a[j-1];
            a[j - 1] = temp;
            j--;
        }
    }
}
 
int main()
{
    int n=0;
    array stud[20];
    if(!in) cout << "eror";
    else
    {
     
      while(in.peek()!=EOF)
      {
        
        in>>stud[n].surname;
        in>>stud[n].name;
        in>>stud[n].secondname;
        in>>stud[n].year;
        for (int i=1; i<=5; i++) 
        {
            in>>stud[n].num[i];
        }
        n++;
      }
    sort(stud,n);
    for (int i=0; i<n; i++)
        stud[i].print();
}
in.close();
out.close();
system("pause");
return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2011, 07:23     Удалить из массива все элементы,в записи которых все цифры различны.
Посмотрите здесь:

C++ Удалить из массива все элементы,в записи которых все цифры различны.
Удалить из массива элементы, в записи которых все цифры различны C++
C++ Удалить из целочисленного одномерного массива все элементы, в записи которых все цифры различны
C++ Найти все трехзначные числа, в которых все цифры различны.
C++ Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
02.10.2011, 10:35     Удалить из массива все элементы,в записи которых все цифры различны. #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот полностью готовая программа, разберитесь
код
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
using namespace std;
 
struct Student  {
    char name[55];
    char group[55];
    float ses[5];
    float rat;
};
 
Student mas[2],x;
void stud();
void sort();
void rait();
void rait_2();
int read_file();
int prin_file();
 
void stud() {
    for(int i=0;i<2;i++)    {
        printf("                               Student %i",i+1," .");
        printf("\n SeName:  ");
        scanf("%s ",mas[i].name);
        printf(" Group:  ");
        scanf("%s",mas[i].group);
        printf("\n Ratting:\n");
        for(int j=0;j<5;j++)    {
            printf("%i.  ",j+1," ");
            scanf("%f",&mas[i].ses[j]);
        }
    }
}
 
void sort() {
    printf("                                Spisok.");
    for(int i=0;i<2;i++)    {
        for(int j=i;j<2;j++)    {
            if((mas[i].rat)>(mas[j].rat))   {
                x=mas[i];
                mas[i]=mas[j];
                mas[j]=x;
            }
        }
            printf("\n%i ",i+1);
            printf("SeName: %s\n",mas[i].name);
            printf("Group: %s\n",mas[i].group);
            rait_2();
            printf("S.bal: %.1f\n",mas[i].rat);
            /*for (int j=0; j<5; j++){
                printf("%.0f\n",mas[i].ses[j]);
            }*/
    }
    
}
void rait_2()   {
    int r;
    float s,m;
        for(int i=0;i<2;i++)    {
        m=0;s=0;
        for(int j=0;j<5;j++)    {
            s=s+mas[i].ses[j];
        }
        m=s/5; mas[i].rat=m;
    }
}
 
void rait() {
    int r;
    float s,m;
    printf("                                Session.\n");
    for(int i=0;i<2;i++)    {
        m=0;s=0;
        for(int j=0;j<5;j++)    {
            s=s+mas[i].ses[j];
        }
        m=s/5;
        if(m>4.0)   {
            r=+1;
            printf("\n Srednyi ball bol'she '4' y:  %s",mas[i].name);
            printf("\n");
        }
 
    }
    if(r==0)
        printf("\n\n Net studentov, nabravshih srednyi ball bol'she '4'.");
}
 
int read_file() {
    char fn[20];
    FILE* f;
    printf("\nEnter File name: ");
    scanf("\n%[^\n]",fn);
    f=fopen (fn,"r");
    if (!f) {
        printf("\nWarning: no such file. Using stdin.\n");
        f=stdin;
 
    }
    for (int i=0; i<2; i++) {
        fscanf(f,"%[^\t]\t%[^\t]\t %f %f %f %f %f\n", mas[i].name, mas[i].group,(&mas[i].ses[0]),(&mas[i].ses[1]),(&mas[i].ses[2]),(&mas[i].ses[3]),(&mas[i].ses[4]));
    }
    fclose(f);
    return 0;
}
 
int prin_file() {
    char fn[20];
    FILE* f;
    printf("\nEnter File name: ");
    scanf("\n%[^\n]",fn);
    f=fopen (fn,"w");
    if (!f) {
        printf("\nWarning: no such file. Using stdin.\n");
        f=stdin;
    }
    for (int i=0; i<2; i++) {
        fprintf(f,"\nSeName: %s\nGroup: %s\nS.bal: %.1f\nSsesion: \n%.0f\n%.0f\n%.0f\n%.0f\n%.0f",mas[i].name,mas[i].group,mas[i].rat,mas[i].ses[0],mas[i].ses[1],mas[i].ses[2],mas[i].ses[3],mas[i].ses[4]);
    }
 
    return 0;
}
 
int main()  {
    int result=0,result2=0,br=0;
 
    for(;result!=1;)    {
        int answer, n;
        printf("\n Stud. - Enter 1\n Info. - Enter 2\n Sess. - Enter 3\n File - Enter 4\n Exit. - Enter 0\n\n You answer: ");
        scanf("%i",&answer);
        switch(answer)  {
        case 1:{
            while ((result2!=1)&&!(br)) {
                printf("\n   Read:\n   File. - Enter 1\n   Cons. - Enter 2\n   Exit. - Enter 0\n\n You answer: ");
                scanf("%i",&n);
                switch(n){
                    case 1:{read_file();result2=0;break;}
                    case 2:{stud();result2=0;break;}
                    case 0:{br=1;break;}
                }
            }
            if (br) continue;
        case 2:{sort();result=0;break;}
        case 3:{rait();result=0;break;}
        case 4:{prin_file();result=0;break;}
        default:{exit(0);}
               }
        }
    }
}
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
10.10.2011, 23:31  [ТС]     Удалить из массива все элементы,в записи которых все цифры различны. #3
robert19, спасибо но мне кажется вы решили ее слишком сложно
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
11.10.2011, 20:28     Удалить из массива все элементы,в записи которых все цифры различны. #4
Ириска5, Возможно, за то сам))) немножко подредактируйте...
Yandex
Объявления
11.10.2011, 20:28     Удалить из массива все элементы,в записи которых все цифры различны.
Ответ Создать тему
Опции темы

Текущее время: 05:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru