Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
BPC UDP cv10 cisla
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> // calloc, malloc, free //#define N 8 int minmax(size_t aSize, double aData[], double *aPtrMax, double *aPtrMin) { //aData = pole prvků typu double if(!aData || !aPtrMax || !aPtrMin) //kontrola jestli jsou platné data return -1; // Kdyz bude zadan NULL, tak funkce vrátí hodnotu -1 *aPtrMax = *aPtrMin = aData[0]; // do obou naraz se priradi 1. prvek pole for(size_t i = 1; i < aSize; ++i) { if(*aPtrMax < aData[i]) *aPtrMax = aData[i]; else if(*aPtrMin > aData[i]) //provede se jenom když se neprovede if *aPtrMin = aData[i]; } return 0; //vse dobre dopadlo (a snad to nespadlo) } // double (*aDataPtr)[] int ctidata(size_t *aSizePtr, double **aDataPtr) { if(!aSizePtr || !aDataPtr) return -1; size_t pocet = 0; double *data = NULL; printf("Zadej pocet cisel: \n"); if(scanf("%zu", &pocet) != 1) { printf("Chybny vstup\n."); return 5; } //DataPtr = malloc( pocet * sizeof(double) ); data = calloc(pocet, sizeof(double)); // calloc: zajisti i vynulovani pameti if(!data) // nebo ==> (DataPtr == NULL) { printf("Chyba alokace!"); return 4; } printf("Zadal jste %zu hodnot:\n", pocet); // %zu = celá cisla typu size_t for(size_t i = 0; i < pocet; ++i) if(scanf("%lf", &data[i]) != 1) { free(data); //návrat vypůjčené paměti return 3; } *aSizePtr = pocet; *aDataPtr = data; //na me to bylo moc rychle vsechno +4 return 0; //(>﹏<) přednášky si musím 2x zrychlit, toto 2x zpomalit } //mozna ukazat princip na jednodussim programu yes yes hello world s ukazateli int main(void) { //double data[N] = {0, }; double *DataPtr = NULL; size_t pocet = 0; // size_t*, double** if(ctidata(&pocet, &DataPtr) != 0) { printf("Chybna data, konec programu.\n"); return 2; } printf("data: {"); for(size_t i = 0; i < pocet; ++i) //printf("%.2lf, ", DataPtr[i]); //.2 = na 2 desetinne mista printf("%.1lf, ", DataPtr[i]); //.1 = na 1 des. míst nedoporuceno puts("}"); // Volani funkce minmax - 3). 4) double min = 0, max = 0; if(minmax(pocet, DataPtr, &max, &min) != 0) // tak proc 0 ? napiste { printf("Chyba programu\n"); free(DataPtr); DataPtr = NULL; return 1; } free(DataPtr); //návrat vypůjčené paměti DataPtr = NULL; //anulování pointeru, ne vynulování vypůjčené paměti printf("Nejmensi cislo je %.1lf\n", min); printf("Nejvetsi cislo je %.1lf\n", max); return 0; } #if 0 základ je Trollí oáza ja mam mikrak na sluchatkach xd a posloucham na repracich nn #endif
run
|
edit
|
history
|
help
0
vyuziti struktury
Stack
BPC cv 5_Test
Find integer values of functions of integer values
scitani matic
Tisknuti retezcu a zmnena pismenek z v na m
hrátky s ukazately ++ bonusy ++ profi swap
inicializace struktury
pointery
Check Expression with Stack