Pozdrav,
Evo ti malo koda koga sam sklepao ne brzinu i nisam ga bas istestirao, pa su
moguće i anomalije. Program namerno nisam dovršio, a doveden je do trenutka
kada možeš u već postojećoj petlji da odrediš minimum niza, što je elementarni
zadatak.
Code:
#include <stdio.h>
#include <stdlib.h>
#define MAX_GRADOVA 10
int main(int argc, char* argv[])
{
int n;
int grad_cena_tv[MAX_GRADOVA];
int grad_cena_povratna[MAX_GRADOVA];
printf( "Koliko ima gradova?" );
scanf( "%d", &n );
if ( n > 0 && n < MAX_GRADOVA )
{
int i;
for ( i=0; i<n; i++ )
{
do
{
printf( "Upisite cenu TV-a u gradu %d?", i+1 );
scanf( "%d", &grad_cena_tv[i] );
} while( grad_cena_tv[i] < 1 );
do
{
printf( "Upisite povratnu kartu do grada %d?", i+1 );
scanf( "%d", &grad_cena_povratna[i] );
} while ( grad_cena_povratna[i] < 1 );
}
int j;
for ( i=0; i<n; i++ )
{
int suma_l = grad_cena_tv[i];
int suma_d = grad_cena_tv[i];
printf ( "REZULTATI ZA GRAD (%d), inicijalna cena u mestu polaska = %d\n", i+1, suma_l );
suma_l=0;
suma_d=0;
for ( j=1; j<n; j++ )
{
int sledeci_grad_l = ( ( i+j ) %n ) + 1;
int sledeci_grad_d = ( ( i+(n-j) ) %n ) + 1;
suma_l += grad_cena_povratna[sledeci_grad_l - 1];
suma_d += grad_cena_povratna[sledeci_grad_d % n];
int cena_l = suma_l+grad_cena_tv[sledeci_grad_l-1];
int cena_d = suma_d+grad_cena_tv[sledeci_grad_d-1];
printf( "- do grada (%d), l, tv+povratak = %d\n", sledeci_grad_l, cena_l );
printf( "- do grada (%d), d, tv+povratak = %d\n", sledeci_grad_d, cena_d );
// ... OVDE TREBA MALO TVOG KODA KOJI TRAZI MIN, ISKORISTI: cena_l, cena_d, sledeci_grad_l, sledeci_grad_d
}
}
}
else
{
printf( "Greška u unosu\n" );
}
system( "PAUSE" );
return 0;
}
Ovako izgleda izlaz na ekran:
Koliko ima gradova?4
Upisite cenu TV-a u gradu 1?1
Upisite povratnu kartu do grada 1?1
Upisite cenu TV-a u gradu 2?2
Upisite povratnu kartu do grada 2?2
Upisite cenu TV-a u gradu 3?3
Upisite povratnu kartu do grada 3?3
Upisite cenu TV-a u gradu 4?4
Upisite povratnu kartu do grada 4?4
REZULTATI ZA GRAD (1), inicijalna cena u mestu polaska = 1
- do grada (2), l, tv+povratak = 4
- do grada (4), d, tv+povratak = 5
- do grada (3), l, tv+povratak = 8
- do grada (3), d, tv+povratak = 8
- do grada (4), l, tv+povratak = 13
- do grada (2), d, tv+povratak = 10
REZULTATI ZA GRAD (2), inicijalna cena u mestu polaska = 2
- do grada (3), l, tv+povratak = 6
- do grada (1), d, tv+povratak = 3
- do grada (4), l, tv+povratak = 11
- do grada (4), d, tv+povratak = 7
- do grada (1), l, tv+povratak = 9
- do grada (3), d, tv+povratak = 10
REZULTATI ZA GRAD (3), inicijalna cena u mestu polaska = 3
- do grada (4), l, tv+povratak = 8
- do grada (2), d, tv+povratak = 5
- do grada (1), l, tv+povratak = 6
- do grada (1), d, tv+povratak = 6
- do grada (2), l, tv+povratak = 9
- do grada (4), d, tv+povratak = 10
REZULTATI ZA GRAD (4), inicijalna cena u mestu polaska = 4
- do grada (1), l, tv+povratak = 2
- do grada (3), d, tv+povratak = 7
- do grada (2), l, tv+povratak = 5
- do grada (2), d, tv+povratak = 9
- do grada (3), l, tv+povratak = 9
- do grada (1), d, tv+povratak = 10
Press any key to continue . . .
[Ovu poruku je menjao X Files dana 14.11.2006. u 18:34 GMT+1]