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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2016, 10:48   #1
Финголфин
Новичок
Джуниор
 
Регистрация: 28.01.2016
Сообщений: 1
По умолчанию Как убрать глобальные переменные в коде? C++

Привет! Пожалуйста, помогите мне с этой задачей. Это работает. Но я хочу, чтобы обойтись без глобальных переменных.


Код:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>
#include <iostream>
using namespace std;
 
void case1();
void case2();
void case3();
void case4();
void case5();
 
const int MAXROW = 5;
const int MAXCOL = 5;
int A[MAXROW][MAXCOL] = { 0 };
int newarr[MAXROW + 1][MAXCOL + 1] = { 0 };
 
int main()
{
 
    char da;
    do                                  //menu
    {
        cout << "\n\nMENU\n";
        cout << "1. : \n";
        cout << "2. : \n";
        cout << "3.: \n";
        cout << "4.  \n";
        cout << "5. \n";
        cout << "6.Exit.\n\n";
        cin >> da;
 
        switch (da)
        {
        case '1': {
            system("cls");
            case1();
        } break;
 
        case '2': {
            //system("cls"); 
            case2();
        } break;
 
        case '3': {
            //system("cls"); 
            case3();
        } break;
 
        case '4': {
            //system("cls"); 
            case4();
        } break;
 
        case '5': {
            //system("cls"); 
            case5();
        } break;
        }
 
    } while (da != '6');
 
    return 0;
 
}
 
void case1()
{
 
 
    for (int r = 0; r < MAXROW; ++r)
        for (int c = 0; c < MAXCOL; ++c) {
            cout << "\n A[" << r << "][" << c << "]= ";
            cin >> A[r][c];
        }
 
}
 
void case2()
{
 
    int max[MAXCOL] = { 0 };
 
    for (int r = 0; r < MAXROW; ++r) {
        int minr = A[r][0];
        for (int c = 0; c < MAXCOL; ++c) {
            newarr[r][c] = A[r][c];
            if (minr > A[r][c])
                minr = A[r][c];
 
            if (max[c] < A[r][c])
                max[c] = A[r][c];
        }
        newarr[r][MAXCOL] = minr;
    }
 
    for (int c = 0; c < MAXCOL; ++c)
        newarr[MAXROW][c] = max[c];
 
    for (int r = 0; r < MAXROW + 1; ++r) {
        for (int c = 0; c < MAXCOL + 1; ++c)
            newarr[r][c] ? cout << newarr[r][c] << "\t" : cout << " \t";
 
        cout << "\n";
    }
}
 
 
void case3()
{
    int negNumber = 0;
    double average = 0;
 
    for (int r = 0; r < 6; ++r) {
        for (int c = 0; c < 6; ++c) {
            if (newarr[r][c] < 0) {
                ++negNumber;
                average += newarr[r][c];
            }
 
        }
    }
    if (negNumber > 0) {
        average /= negNumber;
        cout << "Average of negatives: \n" << average;
    }
    else
        cout << "No negatives.\n";
 
 
}
 
void case4()
{//Find product of number different from 0
    int count = 0;
    int product = 1;
 
 
    for (int r = 0; r < 6; ++r)
        for (int c = 0; c < 6; ++c)
            if (newarr[r][c] != 0)
            {
                ++count;
                product *= newarr[r][c];
 
            }
 
 
    if (count != 0)
        cout << "\n Procut: \n" << product << endl;
    else
        cout << "All elements = 0";
 
}
 
void case5()
 
{
    for (int r = 0; r < MAXROW + 1; ++r) {
        for (int c = 0; c < MAXCOL + 1; ++c)
            newarr[r][c] ? cout << newarr[r][c] << "\t" : cout << " \t";
 
        cout << "\n";
    }
}

Последний раз редактировалось Финголфин; 28.01.2016 в 10:52.
Финголфин вне форума Ответить с цитированием
Старый 28.01.2016, 11:32   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Все что вам надо (если это работает) узнать, что у функции бывают параметры
p51x вне форума Ответить с цитированием
Старый 28.01.2016, 12:14   #3
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Не поверите но то работает!
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 28.01.2016, 12:33   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
узнать, что у функции бывают параметры
...и что из функции можно что-то вернуть наружу с оператором return.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глобальные переменные tae1980 Microsoft Office Excel 16 20.11.2013 08:41
Глобальные переменные ser70 Общие вопросы C/C++ 4 02.06.2013 20:03
глобальные переменные dieego6@gmail.com C# (си шарп) 3 03.10.2012 18:28
Глобальные переменные lafaet12 Microsoft Office Excel 1 13.12.2011 15:39
глобальные переменные wulf_01 PHP 0 15.11.2011 15:00