Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2017, 20:04   #1
PaulDark
Новичок
Джуниор
 
Регистрация: 17.05.2017
Сообщений: 8
По умолчанию Задача С++

У меня есть задача:
Известный рост каждого из 25 учеников класса. Нет ни одной пары учеников, имеющих одинаковый рост. определить:
а) фамилии самого высокого и
низкого учеников класса;
б) фамилии двух учеников команды есть
высокими без учета действительно высокого ученика класса;
в)фамилии двух учеников команды, являются самыми высокими в классе, а не используя при этом два оператора цикла (два прохода по массива).

Я зделал её вот так (код программы):
Код:
#include <iostream>  
using namespace std;

struct pupil
{
    char name[20];
    int height;
};

int main()
{
	const int n=5;
    pupil a[n], x, min, max, max1, max2;
    int k=0;
    for (int i=0; i<n; i++)
        cin >> a[i].name >> a[i].height;
// a)
    min = max = a[0];
    for (int i=0; i<n; i++)
        if (a[i].height > max.height)
            max = a[i];
        else if (a[i].height < min.height)
            min = a[i];
    cout << "\nmin height - " << min.name << "\nmax height - " << max.name << "\n\n";
    
// б)
    max1.height = 0;
    max2.height = 0;
    for (int i=0; i<n; i++)
        if (a[i].height > max1.height && a[i].height != max.height)
        {
            max1 = a[i];
            k = i;
        }
    for (int i=0 ; i<n; i++)
        if (a[i].height >max2.height && i != k && a[i].height != max.height)
            max2 = a[i];
    cout << "1) " << max1.name << " and " << max2.name << " are the tallest pupils\n";
    
// в)
    max1.height = 0;
    max2.height = 0;
    k=0;
    for (int i=0; i<n; i++)
    {
        if (a[i].height != max.height && a[i].height > max1.height)
        {
            max1 = a[i];
            k=i;
        }
        if (a[i].height != max.height && a[i].height > max2.height && k != i)
            max2 = a[i];
    }
    cout << "2) " << max1.name << " and " << max2.name << " are the tallest pupils\n\n";


	system("pause");
	return 0;
}
Но мне нужно переделать её так, чтобы использовать указатели. Помогите пожалуйста. Спасибо!

Последний раз редактировалось Аватар; 22.05.2017 в 21:04.
PaulDark вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на зачёт. проблема Задача на нобелевскую премию! Sabotage5 Паскаль, Turbo Pascal, PascalABC.NET 2 18.03.2013 15:18
Задача по подсчёту статистики использования букв. Другая задача - по длинной арифметике Pascal ABC kimberly Паскаль, Turbo Pascal, PascalABC.NET 3 24.12.2012 17:03
Задача на оптимальный расчет маршрута (задача в презентации) в табличном процессоре Excel Toofed Помощь студентам 0 30.11.2011 01:12
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51