powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / даны массивы F-фамилий студентов ...
23 сообщений из 23, страница 1 из 1
даны массивы F-фамилий студентов ...
    #39134960
fr0st1k123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s[i]- результат сессии F[i] студента.
Отсортировать массив S по сумме баллов и вывести на экран вместе с фамилиями.
Подскажите алгоритм , как сделать программу.
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39135063
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39135071
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fr0st1k123Подскажите алгоритм
Сначала выводишь на экран тех, у кого сумма баллов 25. Потом - тех у кого 24. Потом - тех
у кого 23. И так далее до единицы. Всё, задача решена.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39135087
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всегда интересовало. Стабильный троешник отличается от
отличника, получающего периодически "кол" ?

Средний бал вроде одинаков...
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39135104
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСредний бал вроде одинаков...
ИМХУ "Периодически" и "каждый второй" разные понятия.
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39135133
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно. В матричном виде эта задача звучала-бы как
расчёт вектора рангов для матрицы size([i]) строк на 1+5 колонок.
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39135329
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fr0st1k123Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s[i]- результат сессии F[i] студента.
Отсортировать массив S по сумме баллов и вывести на экран вместе с фамилиями.
Подскажите алгоритм , как сделать программу.


тут ключ к решению задачи в том, что, чтобы не нарушить структуру параллельных массивов студентов и их оценок, нужно либо сортировать их вместе, либо сортировать косвенно индексы к ним в отделении массиве.

или можно переписать все в массив структур (студент, его оценки), и далее сортировать его.

более ни в чем сложности нет, поскольку по-видимому можно не писать сортировка самому, а использовать стандартную функцию сортировки.
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39135360
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivлибо сортировать косвенно индексы к ним в отделении массиве.
опрос общественного мнения можно провести
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39135968
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот автор пишет
авторДаны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s[i]- результат сессии F[i] студента.
У него что. Многомерный массив? Или массив структур? Или матрица? Как на сях кодить-та?

Как кодить?
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39136678
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВот автор пишет
авторДаны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s[i]- результат сессии F[i] студента.
У него что. Многомерный массив? Или массив структур? Или матрица? Как на сях кодить-та?

Как кодить?

я так понял паралленьные массивы, два.
второй еще и многомерный, т.о. параллельность идет только по одному изменению
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39136687
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВот автор пишет
авторДаны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s[i]- результат сессии F[i] студента.
У него что. Многомерный массив? Или массив структур? Или матрица? Как на сях кодить-та?

Как кодить?
Пофиг что. Создать массив индексов и его сортировать.
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39136871
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TmaytonВот автор пишет
пропущено...

У него что. Многомерный массив? Или массив структур? Или матрица? Как на сях кодить-та?

Как кодить?
Пофиг что. Создать массив индексов и его сортировать.
Тоесть надо создать доп-структуру данных (как минимум из двух
полей key:index) и ее сортировать. Какое-то усложнение получается.
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39137032
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDima Tпропущено...

Пофиг что. Создать массив индексов и его сортировать.
Тоесть надо создать доп-структуру данных (как минимум из двух
полей key:index) и ее сортировать. Какое-то усложнение получается.

чего там сложного?
простой массив индексов, косвенная адресация.
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39137045
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТоесть надо создать доп-структуру данных (как минимум из двух полей
key:index) и ее сортировать. Какое-то усложнение получается.
Я же предложил решение без дополнительных структур и сортировки. В чём проблема-то? Оно
как раз на лабораторную сойдёт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39137217
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКакое-то усложнение получается.
Просто массив int`ов
Код: plaintext
1.
int idx[SIZE];


Инициализируем
Код: plaintext
1.
for(int i = 0; i < SIZE; i++) idx[i] = i;


Обращение в элементу:
Код: plaintext
1.
2.
s[idx[i]]
F[idx[i]]


Дальше написать свою функцию сравнения
Код: plaintext
1.
int compareMyType (const void * a, const void * b) ...


и отсортировать
Код: plaintext
1.
qsort (idx, SIZE, sizeof(int), compareMyType);
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39137432
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А точно. Я вспомнил эту тему.
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39138839
fr0st1k123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужна помощь , если ввожу больше 4 фамилий в конце выдает ошибку.
Код: plaintext
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.
#include "stdafx.h"
#include <iostream>
#include<algorithm>
#include<numeric>
using namespace std;

bool sravnenie(int**a, int**b) {
	int aS = 0, bS = 0;
	aS = accumulate(*a, *a + 5, 0);
	bS = accumulate(*b, *b + 5, 0);
		return aS > bS;
}
int main(int argc,char**argv)
{setlocale(LC_CTYPE, "rus");
		int n = 0;
		cout << "Введите количество студентов\n";
		cin >> n;
		char **F = new char*[n];
		for (int i = 0; i < n; i++)
			F[i] = new char[50];
		int **S = new int*[n];
		for (int i = 0; i < n; i++)
			S[i] = new int[5];
		for (int i = 0; i < n; i++)
		{
cout << "Введите фамилию\n";
			cin >> F[i];
			if (F[i] != 0) {
				cout << "Введите оценки\n";
				for (int j = 0; j < 5; j++) {
					cin >> S[i][j];
				if (S[i][j] < 1 || S[i][j]>5) {
					cout << "Оценки\n" << S[i][j]<<"-" << "Неверно.Введите заного\n" << endl;
					cin >> S[i][j];
					}}}}
	int*** idx = new int**[n];
	for (int i = 0; i < n; i++)
		idx[i] = S + i;
	sort(idx, idx + n, sravnenie);
	for (int i = 0; i < n; i++)
		cout << F[idx[i] - S] << ":" << accumulate(*idx[i], *idx[i] + 5, 0) << endl;
	for (int i = 0; i < n; i++)
	delete[] idx[i];
	return 0;
}
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39138906
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уж если подключил std::algorithm то строки можно тоже подключить. Проще было-б.
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39138909
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
int*** idx = new int**[n];


"И вот мы видим две звёздочки... три звёздочки...
Лучше всего, конечно, пять звёздочек." (с)

Извините, не смог удержаться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39138914
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, давай без сарказма. Ато автор подумает что на этом форуме все злые.
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39138916
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fr0st1k123
Код: plaintext
1.
*idx[i] + 5


Это за пределами массива S

fr0st1k123
Код: plaintext
1.
"Неверно.Введите заного\n"


Может "за ногу"? :)
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39138921
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЭто за пределами массива S
Тут все верно.

Вот косяк
fr0st1k123
Код: plaintext
1.
2.
	for (int i = 0; i < n; i++)
	delete[] idx[i];


Надо
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
	for (int i = 0; i < n; i++) 
		delete[] F[i];
	for (int i = 0; i < n; i++) 
		delete[] S[i];
	delete[] S;
	delete[] F;
	delete[] idx;



Выравнивай код правильно. отступы не для того чтобы по центру экрана код помещать.
...
Рейтинг: 0 / 0
даны массивы F-фамилий студентов ...
    #39138939
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonдавай без сарказма. Ато автор подумает что на этом форуме все злые.
Во-первых, это не сарказм. Просто ассоциация.
Во-вторых, ок, маленькая добрая лекция:

Поскольку в задании сказано "даны массивы", их не надо вводить с клавиатуры. Достаточно
задать константами в коде. Далее, условие сортировки ещё и по фамилии тоже не стоит.
Следовательно...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#include <stdio.h>

int main()
{
   const char* F[3] = {"Иванов", "Петров", "Сидоров"};
   const int S[3][5] = {{1,2,3,4,3},{1,2,3,4,2},{1,2,3,4,1}};
   for (int i = 5; i<=25; ++i)
   {
     for (int j = 0; j < 3; ++j)
     {
       if (S[j][0]+S[j][1]+S[j][2]+S[j][3]+S[j][4] == i)
         puts(F[j]);
     }
   }
   return 0;
}


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / даны массивы F-фамилий студентов ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]