C/C++

  • Креатор на темата Креатор на темата Драган
  • Време на започнување Време на започнување
1 2 3 4
5 6 7 8
0 1 2 3
1 2 3 6

Малку помош за задачава да се пресмета збирот на елементите кои не се со црвено
 
1 2 3 4
5 6 7 8
0 1 2 3
1 2 3 6

Малку помош за задачава да се пресмета збирот на елементите кои не се со црвено
Пробај вака: Врти ги сите елементи кои не лежат на главната и споредната дијагонала. Ако имаш работено матрици, би требало кодот за ова да го знаеш...
 
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;
}
Мислам дека е наједноставно решение (за конкретниов случај) и дека ќе ја сватиш логиката. :)
 
Еве ја задачата, во кодот имаш и објаснување:
Код:
#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;
}
Мислам дека е наједноставно решение (за конкретниов случај) и дека ќе ја сватиш логиката. :)
Фала многу
 
Имам задача во која треба да напишам функција која ќе собира два двоцифрени броја, при што првиот ќе се внеси преку тастатура а вториот ќе биди број напишан со истите цифри како и првиот број, но во обратен редослед. Како ќе го дефинирам вториот број?
 
Еве ја задачата, во кодот имаш и објаснување:
Код:
#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)
 
Имам задача во која треба да напишам функција која ќе собира два двоцифрени броја, при што првиот ќе се внеси преку тастатура а вториот ќе биди број напишан со истите цифри како и првиот број, но во обратен редослед. Како ќе го дефинирам вториот број?
Ти одговори еден пред малце но не му беше точно решение..но тука некаде беше со решението. Еве ти ја функцијата :
Код:
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:
 
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
 
Хахахахахаа.
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-ката како што треба.

Исто е.
 
Може ли помош со една задачка.

Да се напише програма во која за влезни ненегативни цели броеви 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. Користете функции и процедури.
 
Ај малце хелп... Сакам да ги извадам елементите од матрицата што се наоѓаат над и под главната дијагонала. Пример 3х3 матрица:
Мислиш нешто вака:
11911617.png


?
 

Kajgana Shop

Back
На врв Bottom