(Queued for deployment)
[Zadatak] Zbir cifara broja, sa predznakom
Napisati program na C-u koji za uneti celi broj računa zbir njegovih cifara korištenjem funkcije SUMA_CIFARA. Funkcija SUMA_CIFARA treba da radi i za negativne brojeve. Npr ., SUMA_CIFARA(-3291) treba da vrati vrednost -15, a SUMA_CIFARA(568) treba da vrati vrednost 19.
Code:
#include <stdio.h>
#include <stdlib.h>
int suma_cifara( int broj )
{
int znak = ( broj > 0 ) - ( broj < 0 );
int suma = 0;
broj = abs( broj );
while ( broj > 0 )
{
suma += ( broj % 10 );
broj /= 10;
}
return ( suma * znak );
}
int main()
{
int n;
printf( "Unesite broj: " );
scanf( "%d", &n );
printf( "Suma cifara broja %d je: %d\n", n, suma_cifara( n ) );
system( "PAUSE" );
return 0;
}
[Zadatak] Funkcija za rotiranje elemenata niza
Napisati funkciju na C-u kojom se vrši rotiranje elemenata niza A dimenzije N za K pozijica u desno. U glavnom programu učitati matricu B, reda P*T, i koristeći formiranu funkciju izvršiti rotiranje elemenata unutar svake vrste za i pozicija u desno, pri čemu je i indeks vrste. Štampati matricu B nakon transformacije.
Code:
#include <stdio.h>
#include <stdlib.h>
#define MAX_DIMENZIJA 30
/* funkcija rotiranje */
void rotiranje( int a[], int n, int k )
{
int i, j;
/* broj uzastopnih jedinicnih pomeraja */
for ( i=1; i<=k; i++ )
{
/* pomeranje za jedan udesno */
int pomocna = a[n-1];
for ( j=n-1; j>0; j-- )
a[j] = a[j-1];
a[0] = pomocna;
}
}
/* glavna funkcija */
int main()
{
/* maksimalne dimenzije matrice */
int b[MAX_DIMENZIJA][MAX_DIMENZIJA];
int p, t, i, j;
/* unos */
printf ( "Unesite dimenzije matrice max:\n" );
/* unos broja redova */
do
{
printf ( "Redova (max=%d)?:", MAX_DIMENZIJA );
scanf( "%d", &p );
} while ( ( p < 1 ) || ( p > MAX_DIMENZIJA ) );
/* unos broja kolona */
do
{
printf ( "Kolona (max=%d)?:", MAX_DIMENZIJA );
scanf( "%d", &t );
} while ( ( t < 1 ) || ( t > MAX_DIMENZIJA ) );
/* unos elemenata matrice */
for ( i=0; i<p; i++ )
for ( j=0; j<t; j++ )
{
printf ( "Unesite element B[%d][%d]=", i+1, j+1 );
scanf( "%d", &b[i][j] );
}
/* ispis matrice pre rotiranja*/
printf( "Ispis pre rotiranja:\n" );
for ( i=0; i<p; i++ )
{
for ( j=0; j<t; j++ )
printf( "%4d", b[i][j] );
printf("\n");
}
/* rotiranje redova */
for ( i=0; i<p; i++ )
rotiranje( &b[i], t, i );
/* ispis matrice posle rotiranja */
printf( "Ispis posle rotiranja:\n" );
for ( i=0; i<p; i++)
{
for ( j=0; j<t; j++)
printf( "%4d", b[i][j] );
printf("\n");
}
/* pauziranje programa, pre nego nestanu rezultati sa ekrana */
system( "PAUSE" );
return 0;
}
[Ovu poruku je menjao X Files dana 16.09.2008. u 21:56 GMT+1]