Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
BPC UDP pr2 cv10
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> // calloc, malloc, free struct TVector { double *iDataPtr; size_t iPocet; }; //(musi byt ;) 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 } int ctivector(struct TVector *aVectorPtr) { if(!aVectorPtr) return -1; size_t pocet = 0; printf("Zadej pocet cisel: \n"); if(scanf("%zu", &pocet) != 1) { printf("Chybny vstup\n."); return 5; } //data = malloc( pocet * sizeof(double) ); 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; } aVectorPtr->iDataPtr = data; aVectorPtr->iPocet = pocet; // (*aVectorPtr).iPocet = pocet; return 0; } int main(void) { struct TVector vector = {.iDataPtr = NULL, .iPocet = 0}; if(ctivector(&vector)) // 0 -> false , cokoliv jineho -> true { // jak se to jakože čte? když ctivector...? printf("Chybna data, konec programu.\n"); return 2; } printf("data: {"); //v zadani ani nemusime tisknout data for(size_t i = 0; i < vector.iPocet; ++i) //printf("%.2lf, ", vector.iDataPtr[i]); //.2 = na 2 desetinne mista printf("%.1lf, ", vector.iDataPtr[i]); //.1 = na 1 des. míst nedoporuceno puts("}"); // Volani funkce minmax - 3). 4) double min = 0, max = 0; if(minmax(vector.iPocet, vector.iDataPtr, &max, &min)!=0) // tak proc 0 ? napiste { printf("Chyba programu\n"); free(vector.iDataPtr); vector.iDataPtr = NULL; return 1; } free(vector.iDataPtr); //návrat vypůjčené paměti vector.iDataPtr = 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 Trolí oáza Já to nestíhám, ani když to píše jeden člověk a tady to píše 5 lidí najednou :'( - naprosto chápu,jak se cítíš. Ahoj, rád tě vidím, jak je ? mě to pomáhá zorientovat se protože su zvyklej používat příkazy z pascalu prostě divný osnovy na střední nechápu proč sme nemohli zrovna v C ja jsem teprve u if a if-else xd, takze na pointery daleko - strana 52 ja Pascal ignoruji, já teď jsem na 65 straně :D #endif
run
|
edit
|
history
|
help
0
crackme
funkce vzdálenost
Check Expression with Stack
TVector
inicializace struktury
Ukazatele PR4
struktura vzalenost
TBod
"Neon" Text Loop. My First Proggam :)
discount sum