1. Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.
    Сокриј

Проблем со низа

Дискусија во форумот 'C // C++' започната од thecursedclown, 14 Јануари 2018.

  1. BlueBaron

    BlueBaron
    Gaining Experience

    167
    135
    19 Јануари 2016
    Машко
    Студент
    Кога праќаш код користи таг code /code, пошто вака еве се губат некој букви како индексот i] на пример. (Форумот мисли дека е BBC таг).

    Задачата е погрешна. Најлесно би ти било со 2 низи да работиш, наместо да манипулираш една низа. Како што си ја изработил оваа задача, тебе на лево ќе ти ги поместува членовите на низата ... но ти бараш десно?

    Ако бараш од лево на десно преместување за 1, без користење на втора низа, најелсно и без многу глупости би ти било да почнеш да ја преместуваш низата од десно на лево. Пошто ако почнеш од лево на десно ќе ти искочи подолга процедура, пошто на тој начин следниот члени би се губел. Еве ти ја решена:

    Код:
    #include<stdio.h>
    
    #define MAX 100
    
    int main()
    {
        int n, niza[MAX];
        scanf("%d", &n);
    
        int i, tmp;
    
        for(i = 0; i < n; i++) scanf("%d", &niza[i]);
        tmp = niza[n-1];
    
        for(i = n-1; i > 0; i--) niza[i] = niza[i-1];
        niza[0] = tmp;
    
        for(i = 0; i < n; i++) printf("%d\t", niza[i]);
    
        return 0;
    }
    
    Но ти си почетник па не треба да бериш многу гајле (сега за сега) за тоа колку меморија би ти одземал цела програма така да најболје терај со 2ра низа, особено имаше една задача каде што низата треба да ја поместиз за k места лево или десно.
     
    Последна промена: 15 Јануари 2018
    На thecursedclown му/ѝ се допаѓа ова.
  2. thecursedclown

    thecursedclown
    Intern

    43
    11
    24 ноември 2017
    Машко
    blagodaram <3
     
  3. Глупав

    Глупав
    Gaining Experience

    289
    122
    20 Април 2008
    Машко
    абре учете ги сите на правилна работа не на workaround...
    уште сега ако мисли дека неколку byte-и повеќе нема да значат што останало за понатаму...
    и јас би рекол да почнеш од форматирање на code...
     
  4. BlueBaron

    BlueBaron
    Gaining Experience

    167
    135
    19 Јануари 2016
    Машко
    Студент
    За прв семестар и за Структурно Програмирање, он само треба да знае како да ги постигне некој работи и да ја развие логиката и problem solving. А колегава на испит дали ќе ја реши задачата со една низа и на ефикасен начин или со две низи на по неефикасен начин, доколку задачатa е точна, он пак ќе добие максимум поени и за двете начини на решавање. А тоа оптимизација и ефикасност, ќе го научат подоцна.
     
  5. thecursedclown

    thecursedclown
    Intern

    43
    11
    24 ноември 2017
    Машко
    Dur si tuka bi sakal li da mi objasnis sto podrazbira pod ova i kako bi go napravil?
    Да се напише програма која за квадратна матрица внесена од тастатура ќе
    испечати на екран дали таа е симетрична во однос на главната дијагонала.
    Структурно програмирање
    8 |
     
  6. BlueBaron

    BlueBaron
    Gaining Experience

    167
    135
    19 Јануари 2016
    Машко
    Студент
    Ако ги гледаш овие задачи од CODE системот, тогаш разгледај ги примерите секогаш што ги даваат на крај.

    Иначе квадратна матрица ти е матрица што има ист број редови и колони. Симетрична матрица подразбира матрица што ги има истите елементи над и под главната дијагонала(Незнам како подругше да ти објаснам, ова најселачки). Пример една матрица е симетрична ако Aij = Aji, каде што А е матрицата. Слендава матрица со големина 4 (4 колони и редови) е симетрична:

    0 1 2 3
    1
    0 2 1
    2 2 0 3
    3 1 3 0

    Ама следнава матрица, со иста големина и слични елементи не е:

    0 1 2 3
    1
    0 2 1
    2 5 0 3
    3 1 3 0

    За да провериш дали е симетрична, направи nested loop за редовите и колоните и проверувај :
    Код:
    if(a[i][j] == a[j][i])
    Ако горново не се исполнува, ставаш break; за да го прекинеш loopot и знаеш дека матрицата не е симетрична.

    Пример:

    Код:
    
    for(i = 0; i < N; i++)
    {
     for(j = 0; j < N; j++)
     {
       if(a[i][j] == a[j][i]) continue;
       else 
        {
           printf("Ovaa matrica ne e simetricna");
           break;
         }
     }
    }
    
     
  7. thecursedclown

    thecursedclown
    Intern

    43
    11
    24 ноември 2017
    Машко
    Fala ti mnogu <3 uspeav da ja sfatam
     
Слични теми
  1. daskal
    Одговори:
    12
    Прегледи:
    2,170
  2. in-Power
    Одговори:
    11
    Прегледи:
    3,007
  3. Papa Benedikt
    Одговори:
    14
    Прегледи:
    1,258
  4. Jovan.74
    Одговори:
    6
    Прегледи:
    1,310
  5. dodevska
    Одговори:
    10
    Прегледи:
    1,565
Вчитување...

Сподели

Вчитување...