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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2015, 15:23   #1
fr0st1k123
Пользователь
 
Регистрация: 28.09.2015
Сообщений: 53
По умолчанию массив Указатель на указатель

Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s[i]- результат сессии F[i] студента.
Отсортировать массив S по сумме баллов и вывести на экран вместе с фамилиями.(массив описать как указатель на указатель)
Код:
#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;
	
	delete[] idx;
	
	return 0;
}
при вводе более 1 фамилии в конце вылетает программа
нужна помощь в правке

Последний раз редактировалось fr0st1k123; 27.12.2015 в 15:27.
fr0st1k123 вне форума Ответить с цитированием
Старый 27.12.2015, 16:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А сгруппировать фамилии и оценки в структуру запрещено?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.12.2015, 16:20   #3
fr0st1k123
Пользователь
 
Регистрация: 28.09.2015
Сообщений: 53
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А сгруппировать фамилии и оценки в структуру запрещено?
конечно нет
fr0st1k123 вне форума Ответить с цитированием
Старый 27.12.2015, 18:06   #4
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

А вы проходили главу "Отладка программ"? В интегрированной среде программирования есть отладочные средства.
Можно найти строку, где происходит вылет. Перед ней остановить программу и посмотреть значения переменных. Кроме того, когда программа вылетает, она обычно говорит, почему. Или дикие ассемблерные коды показывает?
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатель на массив указателей Pein95 Общие вопросы C/C++ 12 26.01.2013 17:59
Передать указатель на указатель в функцию erro Общие вопросы C/C++ 3 29.10.2012 17:59
Указатель на массив структур t2skler Общие вопросы C/C++ 2 02.12.2011 12:50
Указатель на массив указателей, и т.д. Bernarditto Общие вопросы C/C++ 1 09.07.2010 12:26
указатель на массив Cpluser Общие вопросы C/C++ 6 23.09.2009 21:46