Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Что значит max[i]=ak[0][i]; ???


Автор: Клявас® 15.2.2006, 13:19
Код

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

void O(int,int,double [10],double,ofstream&);

    int main(){
        int i,j,n,m;
        double max[10];
        double vid;
        double ak[10][10];
        ofstream os;
        cout<<"Vvedite n i m:  "<<endl;
        cin>>n>>m;

        for(i=0;i<n;i++){
            for(j=0;j<m;j++){
                cout<<"Vvedite "<<i+1<<j+1<<" element:"<<endl;
                cin>>ak[i][j];
            }
        }

        for(i=0;i<n;i++){
            max[i]=ak[0][i];
            for(j=0;j<m;j++){
                if (max[i]<ak[j][i]){
                    max[i]=ak[j][i];
                }
            }
        }
        vid=0;
        for(i=0;i<m;i++){
            vid=vid+max[i];
        }
        vid=vid/m;
        
        O(i,n,max,vid,os);
        os.close();
        return 0;
    }
    //Vyvod. Funkcija
    
    void O(int i,int m, double max[10], double vid, ofstream& os){
    os.open("rez.txt");
    if (os.fail()){
        cout<<"Fail nanajden!"<<endl;
        exit (1);
    }
    for (i=0;i<m;i++){
    os<<i+1<<" stolbika maksimalnyj element: "<<max[i]<<endl;
    }
    os<<"Srednee arifmeticheskoe etix elementov: "<<vid<<endl;
    }



Написал программку. Чуть-чуть барахлит.
Вообщем помогите разобраться что значит max[i]=ak[0][i];
А задание таково:
Двухместный массив до 10 строчек и 10 столбиков.
Найти максимальный элемент каждого столбика. А потом среднее арифметическое каждого максимального элемента.
Вывод оформить как функцию.
Ввод с клавиатуры.
Вывод в файл на жётском диске.

Автор: _hunter 15.2.2006, 14:06
эээ... ты не знаеш ( или забыл ) что и зачем написал? так коментарии в код включай ( чтобы аотом вспомнить/понять смог ).

а это просто начальная инициализация...

Автор: Клявас® 15.2.2006, 14:10
Я знаю что это начальная инициализация, только я не понимаю как она действует.
Просто когда писал программку и эту строку ввёл автоматом, ибо не понял на лекциях как она работает.
Мы присваиваем max[i] = ak[0][i]
Вот именно [0][i] мне кто-нибудь объяснит для чего присваивается.
Ведь задание заключается в том, чтобы найти максимальный элемент каждого СТОЛБИКА!!!

Автор: max-@ 15.2.2006, 14:20
че не ясного то?

for(i=0;i<n;i++){
max[i]=ak[0][i]; // присваиваем переменной начальное значение (первое значение в столбце) для дальнейшего нахождения макс элем в столбце
for(j=0;j<m;j++){
if (max[i]<ak[j][i]){
max[i]=ak[j][i];
}
}
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)