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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bod1ka
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 29
#1

Структуры: вывести фамилии трех лучших учеников данного класса - C++

14.07.2010, 19:08. Просмотров 830. Ответов 3
Метки нет (Все метки)

Анкета школьника включает в себя Ф.И.О., номер школы, номер класса и оценки по пяти предметам. Вывести фамилии трех лучших учеников данного класса.

Вывести в убывающем порядке цифры, которые входят в запись данного длинного целого числа только один раз.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2010, 19:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структуры: вывести фамилии трех лучших учеников данного класса (C++):

Вывести трех лучших учеников - C++
данные хранятся в файле. дано 25учеников сдавших егэ. пример Иванов Петр 5 5 5 ...

Вывести на экран фамилии и имена трех худших по среднему баллу учеников - C++
задача На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается...

Вывести результаты трёх лучших участников соревнований и их фамилии - C++
В ЭВМ поступают фамилии и результаты N участников соревнований по плаванию и их фамилии. Вывести результаты трех лучших участников и их...

Вывести результаты трёх лучших участников соревнований и их фамилии - C++
В ЭВМ поступают фамилии и результаты N участников соревнований по плаванию и их фамилии. Вывести результаты трех лучших участников и их...

В строковом массиве храняться фамилии и инициалы учеников класса. - C++
В строковом массиве храняться фамилии и инициалы учеников класса.Требуется напечатать список класса с указанием для каждого ученика...

Занести из файла в массив A фамилии учеников 11 класса, в матрицу С – их оценки - C++
Оценки учеников 1. Занести из файла в массив A фамилии учеников 11 класса, в матрицу С – их оценки по 10 предметам за первое полугодие, в...

3
Qwerty_coder
29 / 29 / 2
Регистрация: 14.12.2009
Сообщений: 79
15.07.2010, 21:13 #2
Держи первое задание... Писал в ms visual 2008, если что...

p.s. единственное, что есть один маленький баг: когда вводишь Ф.И.О., например так, Petrov A.V., то программа зацикливается...
Чтобы этого не было, вводить ФИО нужно слитно, то есть так: Petrov.A.V. без пробелов

Анкета школьника включает в себя Ф.И.О., номер школы, номер класса и оценки по пяти предметам. Вывести фамилии трех лучших учеников данного класса.
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 <iostream>
#include <conio.h>
 
using namespace std;
 
int _getch(void);
 
struct anketa
{
    char FIO[300];
    int num_school, num_class, mark1, mark2, mark3, mark4, mark5, sred;
} a[500], temp;
 
int kod = 0, kol = -1, temp_school = 0, temp_class = 0;
 
int main()
{
    while(true)
    {
        cout << " Add - 1\n Task - 2\n View - 3\n Exit - 0: ";
        scanf("%d", &kod);
        switch(kod)
        {
        case 1:
            //Ввод исходных данных
            kol++;
            cout << "\n\tInput F.I.O.: "; cin >> a[kol].FIO;
            cout << "\tInput school number: "; cin >> a[kol].num_school;
            cout << "\tInput class number: "; cin >> a[kol].num_class;
            cout << "\t--- Input marks ---" << endl;
            cout << "\tInput first mark: "; cin >> a[kol].mark1;
            cout << "\tInput second mark: "; cin >> a[kol].mark2;
            cout << "\tInput third mark: "; cin >> a[kol].mark3;
            cout << "\tInput fourth mark: "; cin >> a[kol].mark4;
            cout << "\tInput fifth mark: "; cin >> a[kol].mark5; cout << endl;
            break;
        case 2:
            cout << "\nInput the school number you like: "; cin >> temp_school;
            cout << "Input the class you like: "; cin >> temp_class;
            cout << "\n--- The best pupils of school N" << temp_school << " class N" << temp_class << "---"<< endl;
            
            //Вычисление среднего балла учеников
            for (int i = 0; i <= kol; i++)
            {
                a[i].sred = (a[i].mark1 + a[i].mark2 + a[i].mark3 + a[i].mark4 + a[i].mark5) / 5;
            }
 
            //Сортировка
            for (int i = 0; i <= kol - 1; i++)
            {
                for (int j = i + 1; j <= kol; j++)
                {
                    if (a[i].sred > a[j].sred)
                    {
                        temp = a[i];
                        a[i] = a[j];
                        a[j] = temp;
                    }
                }
            }
 
            //Вывод задания на экран
            for (int i = kol; i >= kol - 2; i--)
            {
                if (a[i].num_school == temp_school)
                {
                    if (a[i].num_class == temp_class)
                    {
                        cout << "\tF.I.O.: " << a[i].FIO << endl;
                        cout << "\tSchool number: " << a[i].num_school << endl;
                        cout << "\tClass number: " << a[i].num_class << endl;
                        cout << "\tFirst mark: " << a[i].mark1 << endl;
                        cout << "\tSecond mark: " << a[i].mark2 << endl;
                        cout << "\tThird mark: " << a[i].mark3 << endl;
                        cout << "\tFourth mark: " << a[i].mark4 << endl;
                        cout << "\tFifth mark: " << a[i].mark5 << endl;
                        cout << "\tAverage mark: " << a[i].sred << endl; cout << endl;
                    }
                }
            }
            break;
        case 3:
            for (int i = 0; i <= kol; i++)
            {
                a[i].sred = (a[i].mark1 + a[i].mark2 + a[i].mark3 + a[i].mark4 + a[i].mark5) / 5;
            }
            cout << "\n\t--- View ---" << endl;
            for (int i = 0; i <= kol; i++)
            {
                cout << "\tF.I.O.: " << a[i].FIO << endl;
                cout << "\tSchool number: " << a[i].num_school << endl;
                cout << "\tClass number: " << a[i].num_class << endl;
                cout << "\tFirst mark: " << a[i].mark1 << endl;
                cout << "\tSecond mark: " << a[i].mark2 << endl;
                cout << "\tThird mark: " << a[i].mark3 << endl;
                cout << "\tFourth mark: " << a[i].mark4 << endl;
                cout << "\tFifth mark: " << a[i].mark5 << endl;
                cout << "\tAverage mark: " << a[i].sred << endl; cout << endl;
            }
            break;
        case 0:
            //Выход из программы
            char letter = 0;
            cout << endl << "Would you like to leave this programm, input Y / N? "; cin >> letter;
            cout << endl;
            if (letter == 'Y') return 0;
            if (letter == 'N') cout << "Great decision!\n" << endl; 
            break;
        }
    }
 
    _getch();
}
0
gdz
2 / 2 / 0
Регистрация: 19.10.2009
Сообщений: 46
16.07.2010, 21:30 #3
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
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
 
int main()
{
long int a, f, h;
int z, k, i;
bool t;
cin >> a;
h=a;
while (a/10!=0 || a%10!=0 )
{
z=a%10;
a=a/10;
t=true;
i=0;
f=h;
while (f/10!=0 || f%10!=0 )
{
      k=f%10;
      f=f/10;
      if (z==k) i++; 
     if (i>1) {t=false; break;}
 
}
if (t)
cout << z;
}
getch();
return 0;
}
это на 2е
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,811
16.07.2010, 22:37 #4
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
/* Вывести в убывающем порядке цифры, которые входят в запись данного длинного целого числа 
только один раз. */
 
int main(void){
    long number;
    int i, counters[10];
    
    while ( 1 ){
        printf("Number: ");
        if ( scanf("%ld", &number) != 1 ){
            perror("scanf");
            exit(EXIT_FAILURE);
        }
        if ( ! number )
            break;
        memset(counters, 0, sizeof(counters));
        while ( number ){
            counters[number % 10]++;
            number /= 10;
        }
        printf("Single digits: ");
        for ( i = 9; i >= 0; --i )
            if ( counters[i] == 1 )
                printf("%d ", i);
        printf("\n");
    }
    
    exit(EXIT_SUCCESS);
}
0
16.07.2010, 22:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2010, 22:37
Привет! Вот еще темы с ответами:

Вывести фамилии неуспевающих учеников - C++
Решил для себя порешать задачи из ЕГЭ, столкнулся с проблемой. Условие. На вход программе подаются сведения о сдаче экзаменов...

Структуры. Вывести фамилии студентов. - C++
Вывести фамилии студентов, балл по определенному предмету которых превышает средний балл по предмету на 0.5 балла

Вывести средний балл учеников класса по заданному предмету - C++
Я ничего не успеваю к сессии, поэтому прошу помочь обитателей сайта выполнить эти задания. (я их по темам распишу) 1. Создать массив,...

Двумерный массив, вывести учеников, рост которых равен среднему арифметическому роста всех учеников - C++
Помогите пожалуйста, нужно задать двумерный массив A: Номер уч-ка и его рост B: Вес уч-ка а) вывести уч-ков, рост которых ср....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru