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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2012, 19:15   #1
nnina
Новичок
Джуниор
 
Регистрация: 06.02.2012
Сообщений: 1
По умолчанию c++ задача с двумерным массивом

Помогите, пожалуйста, найти ошибки.

Нужно записать из файла в двумерный массив информацию об оценках каждого из N студентов группы по тому или иному предмету (в первой строке – информация об оценках первого студента, во второй – второго и т. д.). Общее число предметов равно K. Сформировать список оценок студентов, которые по всем K предметам учатся на 4 и 5. Упорядочить этот список по убыванию среднего балла.

Код:
#include <iostream>
#include <fstream>
using namespace std; 
 
void print(int **a, int nrow, int ncol, long *sum);
void print2(int **a, int nrow, int ncol, long *sum);
void sort(int **a, int nrow, int ncol, long *sum);
 
int main(void)
{   int nrow, ncol;
    int i,j; int **a;
    ifstream f; 
    f.open("abc5.txt"); 
    if (f) 
      { cout << "Read file ! \n";
        f >> nrow; f >> ncol;
        a = new int *[nrow];
        for(i = 0;i < nrow;i++)
            a[i]= new int [ncol];
        for(i = 0;i < nrow;i++)
          for(j = 0;j < ncol;j++)
             f >> a[i][j];
        cout << "\n"; 
        f.close();
 
 
       long *sum = new long [nrow];long *h=new long[nrow];
       for (i = 0;i < nrow;i++)
        { sum[i] = 0;
          for (j = 0;j < ncol; j++)
            {
               sum[i] += a[i][j];
                h[i] =sum[i]/ncol;
            }
        }
 
 
       cout<<"\n Исходные баллы учеников\n";
       print(a, nrow, ncol, h); 
       cout << "\n";
 
        sort(a, nrow, ncol, h);
 
 
       cout << "\n Баллы учеников,";
       cout << "\n упорядоченные по cр. баллу\n";
 
       print2(a, nrow, ncol, h);
       cout << "\n";
     } 
       else cout << "File not found \n";
        
}
 
void print(int **a, int nrow, int ncol, long *h)
{ for (int i = 0;i < nrow; i++)
      { for (int j = 0;j < ncol; j++)
             cout << " " << a[i][j]<< " ";
             cout << "| " << h[i] << "\n"; 
      }
}
void print2(int **a, int nrow, int ncol, long *h)
{ for (int i = 0;i < nrow; i++)
      { for (int j = 0;j < ncol; j++)
            
            if (a[i][j] >=4)
              cout << " " << a[i][j]<< " ";
              cout << "\n";
            
      }
}
 
void sort(int **a, int nrow, int ncol, long *h)
{ long buf_h;
   int nmin, buf_a;
   for(int i = 0;i < nrow-1; i++)
    { nmin = i;
      for(int j = i+1;j < nrow; j++)
         if (h[j] < h[nmin]) 
             nmin = j;
      buf_h = h[i];
      h[i] = h[nmin]; h[nmin] = buf_h;
      for(int j = 0;j < ncol;j++)
       { buf_a = a[i][j];
         a[i][j] = a[nmin][j];
         a[nmin][j] = buf_a;
      system ("pause");
        
        }
      } 
}
nnina вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача , связанная с двумерным массивом stas135642 Общие вопросы C/C++ 5 14.11.2010 16:18
Задача с двумерным массивом (Pascal) тиGра Помощь студентам 4 16.09.2009 15:25
Задача с двумерным массивом. svobodys Паскаль, Turbo Pascal, PascalABC.NET 0 14.12.2008 18:09
Задача с двумерным массивом. svobodys Помощь студентам 3 13.12.2008 15:44
задача с двумерным массивом Ras Помощь студентам 1 22.12.2007 19:58