[ BRANCII @ 24.04.2007. 15:23 ] @
Može pomoć oko ovog zadatka:


Napiši C program koji s tipkovnice ponavlja učitavanje cijelog broja m sve dok je taj broj manji od
2 ili veći od 20. Nakon toga program treba s tipkovnice učitati m*m realnih brojeva u dvodimenzijalno
polje A. Program zatim treba pronaći najveći element u gornjem trokutu polja A i najmanji element u
donjem trokutu polja A.

[ toxi_programer @ 25.04.2007. 16:03 ] @
tipkovnica, trokut...?? Koja je poenta izmišljanja ovih reči??
Šta fali Srpskim rečima tastatura, trougao? Ccc...

Počni da radiš zadatak, nemoj očekivati da će ti neko sve uraditi a ti samo da ga prepišeš...
[ BRANCII @ 25.04.2007. 20:57 ] @
hmmm... Necemo sad o ispravnim RECIMA i riječima...

Zadatak sam RESIO do ovog djela gdje treba odredit najveći broj u gornjoj trokutastoj i broj u donjoj trokutastoj...

Neznam kak da odredim te djelove matrice iznad glavne dijagonale i dio ispod sporedne dijagonale...
[ Mali Misha @ 25.04.2007. 21:21 ] @
Hajde pitanje: kako numerišeš elemente u matrici? Kolone (ono vertikalno) i redove (ono horizontalno), mislim.

Neki elemenat pripada gornjem trouglu matrice ako mu je broj kolone veći ili jednak broju reda. Slično, samo sa zamenjenim mestima kolone i reda je sa donjim trouglom matrice.
[ BRANCII @ 25.04.2007. 21:35 ] @
evo kako sam postavio zadatak do tog djela:

#include <stdio.h>
main()
{
int i, j, m;
float A[20][20];

do{
printf("Unesi dimenziju matrice [2-20]:");
scanf("%d", &m);
}while(m<2 || m>20);
printf("Unesi elemente matrice:\n");
for(i = 0; i < m; i++){
for(j = 0; j < m; j++){
printf("element [%d][%d]: ", i, j);
scanf("%f", &A[j]);
}
printf("\n");
}

}
[ Drvx @ 26.04.2007. 00:04 ] @
Ja sam dobio isti zadatak na svome faksu:


Mislim da ide ovako:

Code:

#include <stdio.h>

int m, A[20][20], dtmax, gtmin;

void popuni();         
int g_trokut();
int d_trokut();
void ispis();


int main(void)
{
    int izlaz;
    do
    {
         printf("Unesite velicinu 2D polja:\n===>");
         scanf("%d", &m);
    } while (m < 2 || m > 20);
    
    popuni();
    gtmin = g_trokut();
    dtmax = d_trokut();
    ispis();
    
    printf("Upisi 22\n===>"); //Ovo sam napravio zbog toga sto radim u Dev C++ , pa mi izadje cim zavrsi program
    scanf("%d",&izlaz);       //pa ne mogu vidjet rezultate
    return 0;
}

void popuni()
{
     int i,j;
     
     for (i=0; i<m; i++)
     {
         for (j=0; j<m; j++)
         {
             printf("\nMolimo unesite element %d, %d\n===>", i,j);
             scanf("%d", &A[i][j]);
         }
     }
}

int g_trokut()
{
    int i,j,temp=A[0][0];
    
    for (i=0;i<m;i++)
    {
        for (j=0;j<m-i-1;j++)
        {
            if (A[i][j] < temp) temp = A[i][j];
        }
    }
    return temp;
}

int d_trokut()
{
    int i,j,temp=A[0][m-1];
    
    for (i=0;i<m;i++)
    {
        for (j=m-1;j>m-1-i;j--)
        {
            if (A[i][j] > temp) temp = A[i][j];
        }
    }
    return temp;
}

void ispis()
{
     printf("\n\nNajmanji element gornjeg trokuta je %d.\nNajveci element donjeg trokuta je %d\n", gtmin, dtmax);
     
}
[ BRANCII @ 26.04.2007. 12:51 ] @
ee hvala ljudi..Mozete mi jos samo reci jel glavna dijagonala pripada gornjem trokutu odnosno donjem trokutu?!

Nisam siguran u to?!
[ Drvx @ 26.04.2007. 13:49 ] @
Iako bi se dalo naslutiti, glavna i sporedna dijagonala nemaju baš prevelike veze sa trokutima, koliko ja znam gornji je trokut manji, a donji veći.

A glavna dijagonala u tvom konkretnom slučaju je 0,0 1,1 2,2 3,3 ... (m-1),(m-1)
sporedna bi bila 0,(m-1) 1,(m-1)-1 2,(m-1)-2 .... m-1,0

(m-1) zato što svi vektori u C-u počinju od nule i sadrže m elemenata, dakle od 0 do m-1