#include #include int main() { #ifndef PROGRAM5 #define CISEL 10 int cisla[CISEL] = {5, 7, 2, 8, 20, 7, 5, 5, 40, 2}; int i; // pozice, kam mame ulozit soucasnou nejmensi hodnotu int j; // pozice, kde prave hledame int min; // nejmensi hodnota int minpos; // pozice nejmenší hodnoty; potřebujeme jí // kvůli prohození nejmenšího čísla se současným int pomocna; for (i = 0; i < CISEL; i++) { // Současné nejmenší číslo načteme z místa, kam // máme právě ukládat min = cisla[i]; minpos = i; for (j = i + 1; j < CISEL; j++) { if (cisla[j] < min) { min = cisla[j]; minpos = j; } } // Prohození hodnot pomocna = cisla[i]; cisla[i] = min; cisla[minpos] = pomocna; } for (i = 0; i < CISEL; i++) { if (i) printf(", "); printf("%d", cisla[i]); } return 0; #endif // PROGRAM5 #ifdef PROGRAM4 // Seřadíme pole tak, že budeme mít vstupní a výstupní pole. // Do výstupního pole budeme zapisovat hodnoty tak, aby byly // seřazené. Hodnoty budeme vybírat tak, že najdeme nejmenší // hodnotu a počet jejích výskytů a pak jí zapíšeme // do výstupního pole. Pak najdeme druhou nejmenší hodnotu // (čili hodnotu větší než současný prvek), zjistíme počet // jejích výskytů a opět je zapíšeme do výstupního pole atd. #define CISEL 10 #define TRUE 1 #define FALSE 0 int cisla[CISEL] = {5, 7, 2, 8, 20, 7, 5, 5, 40, 2}; int serazena[CISEL]; int i; // pozice v seřazeném poli int j; // pozice v neseřazeném poli int newmin, oldmin, pocet; int prvni; int prvni2; // = true, pokud chceme uložit do proměnné // newmin první inicializační hodnotu, tj. // je nastaveno na true dokud nenajdu // první neškrtnuté číslo prvni = TRUE; i = 0; while (i < CISEL) { newmin = oldmin; prvni2 = TRUE; for (j = 0; j < CISEL; j++) { if (prvni || cisla[j] > oldmin) { // je skrtle? if (prvni2 || cisla[j] < newmin) { newmin = cisla[j]; pocet = 1; prvni2 = FALSE; } else if (cisla[j] == newmin) { pocet++; } } } printf("newmin: %d, pocet: %d, i=%d, j=%d\n", newmin, pocet, i, j); while (pocet > 0) { serazena[i] = newmin; i++; pocet--; } prvni = FALSE; oldmin = newmin; } for (i = 0; i < CISEL; i++) { if (i) printf(", "); printf("%d", serazena[i]); } return 0; #endif // PROGRAM4 #ifdef PROGRAM3 // Načteme několik čísel a teprve potom zjistíme a // vypíšeme největší a nejmenší hodnotu #define CISEL 5 int cisla[CISEL]; int i; int max, min; printf("Zadej %d cisel: ", CISEL); for (i = 0; i < CISEL; i++) { scanf("%d", &cisla[i]); } min = cisla[0]; max = cisla[0]; for (i = CISEL - 1; i > 0; i--) { if (cisla[i] > max) max = cisla[i]; else if (cisla[i] < min) min = cisla[i]; } printf("Nejvetsi cislo: %d\nNejmensi cislo: %d", max, min); return 0; #endif // PROGRAM3 #ifdef PROGRAM2 // Načteme několik čísel a vypíšeme je v obráceném pořadí. #define CISEL 5 int cisla[CISEL]; int i; printf("Zadej %d cisel: ", CISEL); for (i = 0; i < CISEL; i++) { scanf("%d", &cisla[i]); } printf("Cisla v obracenem poradi: "); for (i = CISEL - 1; i >= 0; i--) { printf("%d", cisla[i]); if (i) printf(", "); } return 0; #endif // PROGRAM2 #ifdef PROGRAM 1 #define ROZSAH 5 int i; int pole[ROZSAH]; // indexy jsou od 0 do 4 i = 8; pole[0] = 8; pole[1] = 10; //pole[2] = 11; //pole[3] = 0; pole[4] = 8; i = 3; pole[i] = 20; return 0; #endif }