3.1.1. Jazyk C

Příklady v jazyce C

Příklad 3.1. Příklad - porovnání 3 čísel

TBD

#include <stdio.h>

int main()
{
  double x, y, z, max;

  printf("Zadej tri realna cisla : ");
  scanf("%lf %lf %lf", &x, &y, &z);
                     /* prazdna radka zvysuje prehlednost */
  if (x > y) {       /* zavorka { neni nutna, ale vhodna */
    if (x > z)
      max = x;
    else
      max = z;
  }                  /* zavorka } neni nutna, ale vhodna */
  else {             /* zavorka { neni nutna, ale vhodna */
    if (y < z)
      max = z;
    else
      max = y;
  }                  /* zavorka } neni nutna, ale vhodna */
                     /* prazdna radka zvysuje prehlednost */
  printf("\nNejvetsi cislo je %f \n", max);
  return 0;
}
                                                 

Příklad 3.2. Funkce quicksort

Quicksort - třídění pole půlením intervalu

void quicksort(int *list, int a, int b) {
    int i, j, x; y;
    i = a; j = b;
    x = list[(a+b) / 2];
    
    do {
        while (list[i] < x) i++;
        while (x < list[j]) j--; ,

        if (i <= j) {
            y = list[i] ; list[i] = list[j];  list[j]=y;
            i++;j++;
        } 
    } while (i <= j); 
    
    if(a<j) quicksort(list,a,j);
    if(i<b) quicksort(list,i,b);
}
                                        

Příklad 3.3. Nalezení největšího společného dělitele NSD a nejmenšího společného násobku NSN dvou zadaných čísel

#include <stdio.h>

int main ( int argc, char * argv[] )
 {
   int a, b, c, d;
   
   printf ( "Zadej dve cisla\n" );
   scanf  ( "%d %d", &a, &b );
   
   if (( a <= 0 ) || ( b <= 0 ))
    {
      printf ( "Zadana cisla musi byt kladna\n" );
      return ( 1 );
    }
   
   c = a; 
   d = b;
   
   while ( a != b )
    if ( a > b )
      a -= b;
     else
      b -= a;
      
   printf ( "NDS: %d, NSN: %d\n", a, c * d / a );
   return 0;
 }
                                       

Příklad 3.4. Test na prvočísla

#include <stdio.h>
#include <math.h>

int main ( int argc, char * argv[] )
 {
   int nr,  limit, i, is_prime = 1;
   
   printf ( "Zadej testovane cislo\n" );
   scanf  ( "%d", &nr );
   
   if ( nr <= 0 ) 
    {
      printf ( "Zadane cislo musi byt kladne\n" );
      return ( 1 );
    }
   
   limit = (int) floor ( sqrt ( nr ) );
   
   for ( i=2; i <= limit; i ++ )
    if (!( nr % i ))
     is_prime = 0;
     
   if ( nr == 1 ) is_prime = 0; // 1 NENI prvocislo 
   if ( is_prime )
     printf ( "%d je prvocislo\n", nr );
    else
     printf ( "%d neni prvocislo\n", nr ); 
   return ( 0 );
 }