1

Тема: Двовимірні масиви мова сі

Треба знайти максимальне число в матриці за абсолютною величиною (за модулем).
Чомусь не виводиться, допоможіть.

#include<stdio.h>
#include<math.h>
int main(void)
{
    int A[4][4]={{1,3,2,5},
                 {5,1,5,3},
                 {6,8,4,2},
                 {1,6,8,3}};
int max;
    for (int i=0;i<4;i++){
        for(int j=0; j<4; j++){
            if(abs(A[i][j])>max){
                max=abs(A[i][j]);
            }   
        } 
    }
          printf("\tМаксимальне число за асболютною величиною=%i",max);
}

2

Re: Двовимірні масиви мова сі

1. Вирівняйте код, його незручно читати.
2. У мене виводиться. Правда, неправильно, і я навіть знаю, чому; але схоже, у вас якась інша проблема, якщо взагалі не виводиться. Як саме ви запускаєте цей код?

Подякували: leofun011

3

Re: Двовимірні масиви мова сі

koala написав:

1. Вирівняйте код, його незручно читати.
2. У мене виводиться. Правда, неправильно, і я навіть знаю, чому; але схоже, у вас якась інша проблема, якщо взагалі не виводиться. Як саме ви запускаєте цей код?

#include<stdio.h>
#include<math.h>
int main(void)
{
    int A[4][4]={{1,3,2,5},
                 {5,1,5,3},
                 {6,8,4,2},
                 {1,6,8,3}};
int max;
for (int i=0;i<4;i++){
for(int j=0; j<4; j++){
if(abs(A[i][j])>max){
max=abs(A[i][j]);
}   
} 
}
printf("\tМаксимальне число за асболютною величиною=%i",max);
}

Вирівняний код. В мене також виводиться, але не правильно)
Тобто як саме?


P.S.
Вже зробив, просто потрібно було не аbs, а fabs

4 Востаннє редагувалося koala (10.12.2019 21:40:27)

Re: Двовимірні масиви мова сі

1. Код вирівнюють так, щоб інструкції, що йдуть послідовно, були на одному рівні, а залежні - зі збільшенням відступу. Зокрема, з фігурними дужками: відкриваємо - додаємо відступ, прибираємо - забираємо.

void main()
{
    int x=2;
    int y=5;
    if(x>y) {
        printf("Більше");
    } else
        printf("Не більше"); //і без дужок все одно треба робити відступи в if, for і т.д.
}

робити це треба не просто для краси, а щось легше було читати код. У вас що перший, що другий - якась головоломка, не зрозуміло, що після чого, а що за умови.
2. У майбутньому, будь ласка, описуйте проблему конкретно, а не "не працює", "не виводиться" і т.д.: що ви очікуєте і що бачите.
3. Якщо вам задають питання-уточнення - краще на них відповідати, навіть якщо вам здається, що ви отримали відповідь на своє питання.
4. fabs тут не змінює практично нічого, лише трохи погіршує роботу. Проблема в тому, що перед першим порівнянням значення змінної max не визначене - а відповідно, просто береться те, що було в пам'яті. Випадково може бути і маленьке число. Вам треба робити

int max=0;

5

Re: Двовимірні масиви мова сі

koala написав:

1. Код вирівнюють так, щоб інструкції, що йдуть послідовно, були на одному рівні, а залежні - зі збільшенням відступу. Зокрема, з фігурними дужками: відкриваємо - додаємо відступ, прибираємо - забираємо.

void main()
{
    int x=2;
    int y=5;
    if(x>y) {
        printf("Більше");
    } else
        printf("Не більше"); //і без дужок все одно треба робити відступи в if, for і т.д.
}

робити це треба не просто для краси, а щось легше було читати код. У вас що перший, що другий - якась головоломка, не зрозуміло, що після чого, а що за умови.
2. У майбутньому, будь ласка, описуйте проблему конкретно, а не "не працює", "не виводиться" і т.д.: що ви очікуєте і що бачите.
3. Якщо вам задають питання-уточнення - краще на них відповідати, навіть якщо вам здається, що ви отримали відповідь на своє питання.
4. fabs тут не змінює практично нічого, лише трохи погіршує роботу. Проблема в тому, що перед першим порівнянням значення змінної max не визначене - а відповідно, просто береться те, що було в пам'яті. Випадково може бути і маленьке число. Вам треба робити

int max=0;

Візьму до уваги.
А стосовно 4-го пункту, я так і зробив, прогавив чомусь це) Але й додатково додав fabs