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

Вычисление суммы элементов строк n-мерного массива - C++

Восстановить пароль Регистрация
 
Dimbalas
0 / 0 / 0
Регистрация: 29.09.2012
Сообщений: 4
18.11.2012, 15:03     Вычисление суммы элементов строк n-мерного массива #1
Здравствуйте, есть программа вычисляющая сумму элементов строк n-мерного массива и выполняющая поиск максимальной суммы какой либо строки. Нужно изменить программу так, чтобы программный код, выполняющий действия пунктов меню выполнялся в отдельных функциях.
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
#include "stdafx.h"
 
#include "stdio.h"
#include "conio.h"
#include <iostream>
#include <clocale>
#include <memory.h>
#include <time.h>
 
#pragma warning( disable : 4996 )
#pragma warning( disable : 4244 )
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    setlocale(LC_ALL, "rus");
    
    srand(time(NULL));
    
    int *a = 0;
    int height = 0;
    int width = 0; 
    int j = 0;
    int i = 0;
 
    printf("Количество предметов и учеников: \n");
    scanf("%d %d", &width, &height);
 
    a = new int[width*height] ();
 
    for (int i = 0; i < height; i = i + 1)
    {
        for (int j = 0; j < width; j = j + 1)
        {
        a[i*width + j]=rand() % 6 ; 3;
        }
    }
    
    for (int i = 0; i < height; i = i + 1)
    {
        for (int j = 0; j < width; j = j + 1)
        {
            printf("%d ", a[i*width + j]);
        }
        printf("\n");
    }
 
    printf("Сумма всех оценок:\n");
    int maxSum = 0;
    int maxStudent = 0;
    for (int i = 0; i < height; i = i + 1)
    {
        int sum = 0;
        for (int j = 0; j < width; j = j + 1)
        {
            sum = sum + a[i*width + j];
        }
 
        if (sum > maxSum)
        {
            maxSum = sum;
            maxStudent = i;
        }
        printf("%d\n", sum);
    }
 
    printf("Лучший студент %d, сумма баллов = %d\n", maxStudent + 1, maxSum);
    
 
    delete [] a;
    getchar();
    getchar();
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2012, 15:03     Вычисление суммы элементов строк n-мерного массива
Посмотрите здесь:

C++ Вычисление суммы элементов массива по столбцам
В чем ошибки (вычисление суммы элементов массива)? C++
C++ вычисление суммы элементов массива по строкам
Постороить из 2 мерного массива в 1 мерный, который содержит все элементы 2 мерного массива , содержащихся по периметру массива C++
C++ Вычисление суммы и определение номеров положительных элементов массива
C++ Вычисление суммы элементов массива
C++ Ввод элементов массива с клавиатуры, вычисление суммы по формуле, нахождение максимальной суммы
Вычисление суммы модулей элементов массива C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Busko
 Аватар для Busko
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 3
18.11.2012, 17:38     Вычисление суммы элементов строк n-мерного массива #2
как-то так
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
#include "stdio.h"
#include "conio.h"
#include <iostream>
#include <locale.h>
#include <time.h>
 int func_sum(int *arr_a, int h,int w);
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
     srand(time(NULL));  
 
    int *a = 0;
    int height = 0;
    int width = 0; 
    int j = 0;
    int i = 0;
 
    printf("Количество предметов и учеников: \n");
    scanf("%d %d", &width, &height);
 
    a = new int[width*height] ();
 
    for (int i = 0; i < height; i = i + 1)
    {
        for (int j = 0; j < width; j = j + 1)
        {
        a[i*width + j]=rand() % 6 ; 3;
        }
    }
    
   func_sum(a,height,width);
 
    _getch();
    
    delete [] a;
   
    return 0;
}
 
 
int func_sum(int *arr_a, int h,int w)
    {
        for (int i = 0; i < h; i = i + 1)
                         {
                          for (int j = 0; j < w; j = j + 1)
                             {
                               printf("%d ", arr_a[i*w + j]);
                             }
                          printf("\n");
                          }
  printf("Сумма всех оценок:\n");
    int maxSum = 0;
    int maxStudent = 0;
    for (int i = 0; i < h; i = i + 1)
    {
        int sum = 0;
        for (int j = 0; j < w; j = j + 1)
        {
            sum = sum + arr_a[i*w + j];
        }
 
        if (sum > maxSum)
        {
            maxSum = sum;
            maxStudent = i;
        }
        printf("%d\n", sum);
    }
 
    printf("Лучший студент %d, сумма баллов = %d\n", maxStudent + 1, maxSum);
    
    return 0;
    }
и еще. если генерируются одинаковые числа у нескольких учеников, выбирается только один, что в принципе, вроде как, ошибка.
Yandex
Объявления
18.11.2012, 17:38     Вычисление суммы элементов строк n-мерного массива
Ответ Создать тему
Опции темы

Текущее время: 21:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru