C/C++

Член од
16 октомври 2009
Мислења
30
Поени од реакции
0
1 2 3 4
5 6 7 8
0 1 2 3
1 2 3 6

Малку помош за задачава да се пресмета збирот на елементите кои не се со црвено
 
A

apidrone

Гостин
1 2 3 4
5 6 7 8
0 1 2 3
1 2 3 6

Малку помош за задачава да се пресмета збирот на елементите кои не се со црвено
Пробај вака: Врти ги сите елементи кои не лежат на главната и споредната дијагонала. Ако имаш работено матрици, би требало кодот за ова да го знаеш...
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
1 2 3 4
5 6 7 8
0 1 2 3
1 2 3 6

Малку помош за задачава да се пресмета збирот на елементите кои не се со црвено
Еве ја задачата, во кодот имаш и објаснување:
Код:
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
   
    int niza[4][4] = { 1,2,3,4,
                      5,6,7,8,
                      0,1,2,3,
                      1,2,3,6 };
                       
    int x = 0, y = 3, zbir = 0;
    // 'x' i 'y' ti se pokazuvaci za dijagonalnite elementi
    // 'i' i 'j' ti se pokazuvaci kon site elementi
    // ja izminuvas matricata, go presmetuvas vkupniot zbir na site elementi
    // i od vkupniot zbir go odzemas zbirot na dijagonalite
    for(int i=0; i<4; i++, x++, y--)
    {
            for(int j=0; j<4; j++)
            {
                    // presmetuvas vkupen zbir na site elementi
                    zbir += niza[i][j];
            }
           
            // Od vkupniot zbir na site elementi go odzemas zbirot na dijagonalite
            zbir -= niza[x][x];
            zbir -= niza[x][y];
    }
   
    cout << zbir << endl;
   
    system("PAUSE");
    return EXIT_SUCCESS;
}
Мислам дека е наједноставно решение (за конкретниов случај) и дека ќе ја сватиш логиката. :)
 
Член од
16 октомври 2009
Мислења
30
Поени од реакции
0
Еве ја задачата, во кодот имаш и објаснување:
Код:
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
 
    int niza[4][4] = { 1,2,3,4,
                      5,6,7,8,
                      0,1,2,3,
                      1,2,3,6 };
                     
    int x = 0, y = 3, zbir = 0;
    // 'x' i 'y' ti se pokazuvaci za dijagonalnite elementi
    // 'i' i 'j' ti se pokazuvaci kon site elementi
    // ja izminuvas matricata, go presmetuvas vkupniot zbir na site elementi
    // i od vkupniot zbir go odzemas zbirot na dijagonalite
    for(int i=0; i<4; i++, x++, y--)
    {
            for(int j=0; j<4; j++)
            {
                    // presmetuvas vkupen zbir na site elementi
                    zbir += niza[i][j];
            }
         
            // Od vkupniot zbir na site elementi go odzemas zbirot na dijagonalite
            zbir -= niza[x][x];
            zbir -= niza[x][y];
    }
 
    cout << zbir << endl;
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Мислам дека е наједноставно решение (за конкретниов случај) и дека ќе ја сватиш логиката. :)
Фала многу
 
Член од
9 јануари 2012
Мислења
1
Поени од реакции
0
Имам задача во која треба да напишам функција која ќе собира два двоцифрени броја, при што првиот ќе се внеси преку тастатура а вториот ќе биди број напишан со истите цифри како и првиот број, но во обратен редослед. Како ќе го дефинирам вториот број?
 
M

Mr.InF3ction

Гостин
Еве ја задачата, во кодот имаш и објаснување:
Код:
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
 
    int niza[4][4] = { 1,2,3,4,
                      5,6,7,8,
                      0,1,2,3,
                      1,2,3,6 };
                     
    int x = 0, y = 3, zbir = 0;
    // 'x' i 'y' ti se pokazuvaci za dijagonalnite elementi
    // 'i' i 'j' ti se pokazuvaci kon site elementi
    // ja izminuvas matricata, go presmetuvas vkupniot zbir na site elementi
    // i od vkupniot zbir go odzemas zbirot na dijagonalite
    for(int i=0; i<4; i++, x++, y--)
    {
            for(int j=0; j<4; j++)
            {
                    // presmetuvas vkupen zbir na site elementi
                    zbir += niza[i][j];
            }
         
            // Od vkupniot zbir na site elementi go odzemas zbirot na dijagonalite
            zbir -= niza[x][x];
            zbir -= niza[x][y];
    }
 
    cout << zbir << endl;
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Мислам дека е наједноставно решение (за конкретниов случај) и дека ќе ја сватиш логиката. :)
Код:
for(i=0;i<4;i++)
        for(j=0;j<4;j++)
            if(j!=i && j+i!=3)
 
M

Mr.InF3ction

Гостин
Имам задача во која треба да напишам функција која ќе собира два двоцифрени броја, при што првиот ќе се внеси преку тастатура а вториот ќе биди број напишан со истите цифри како и првиот број, но во обратен редослед. Како ќе го дефинирам вториот број?
Ти одговори еден пред малце но не му беше точно решение..но тука некаде беше со решението. Еве ти ја функцијата :
Код:
int funkcija(int broj)
{
    int novBroj=0,pom=broj;
    while(pom>0)
    {
    novBroj*=10;
    novBroj+=pom%10;
    pom/=10;
 
    }
    return broj+novBroj;
}
 
Г

Грејвдигер

Гостин
Ај малце хелп... Сакам да ги извадам елементите од матрицата што се наоѓаат над и под главната дијагонала. Пример 3х3 матрица:

1 2 3
4 5 6
7 8 9
Горе (црвените) ги вадам, али печатењето ми ги дава:​
2 3
6 _
Код:
for(i=1;i<=n-1;++i) {
printf("\n");
for(j=i+1;j<=n;j++) {
printf("%d\t", a[i][j]);
}
}
Како да ја поместам 6 на празното место? :rolleyes:


А за под границата, ми ги дава вака​
4 7
8 _
а треба...​
4 _
7 8

Сигурно е ради тоа дека идам прво по колони (обратен ми е кодот како горе). Ама па... ако идам i=j+1 додека i<=n и j=1 додека j<=n-1 не ми печати ништо. :rolleyes:
 
Член од
28 јуни 2009
Мислења
294
Поени од реакции
263
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i==j){;}
else
printf("%d",a[j]);
}
printf("\n");
}
Output:
24
46
78
 
Член од
28 јуни 2009
Мислења
294
Поени од реакции
263
Хахахахахаа.
123
456
789

Значи броевите што се на диагоналата од матрицата ги игнорираме, сите останати ги принтаме.
Ако погледнеш добро броевите што треба да ги игнорираме се A[0][0], A[1][1]........... A[n-1][n-1], така да кога i = j ги игнорираме, останатите ги принтаме.
Океј?
 
Г

Грејвдигер

Гостин
Хахахахахаа.
123
456
789

Значи броевите што се на диагоналата од матрицата ги игнорираме, сите останати ги принтаме.
Ако погледнеш добро броевите што треба да ги игнорираме се A[0][0], A[1][1]........... A[n-1][n-1], така да кога i = j ги игнорираме, останатите ги принтаме.
Океј?
Знам кои се на дијагонала, и ги прескокнува кодот... И ми ги дава елементите, али сакам да ја преместам бројот за едно место, да излезе како што треба да е триаголникот.

Мислам дека вака ќе ти ја подреди 6-ката како што треба.
Исто е.
 
Член од
5 ноември 2011
Мислења
4
Поени од реакции
0
Може ли помош со една задачка.

Да се напише програма во која за влезни ненегативни цели броеви n и m се пресметува и печати вредноста на функцијата на Акерман A(n,m) зададена со:

A(n,m) = m+1, ако n=0
A(n-1,1) ако n<>0, m=0
A(n-1, A(n,m-1)) ако n>0, m>0

Проблемот да се реши прво со итеративна постапка, а потоа со помош на рекурзија за произвилни n и m. Користете функции и процедури.
 

Kajgana Shop

На врв Bottom