Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
PRIMER PROGRAMA CON MALLOC()
/* ANÁLISIS * Entradas --> * Desnivel máximo permitido D --> unsigned int * Cantidad de cotas de altura N --> unsigned long long * N cotas de altura vectorCotas --> unsigned int * * Salida --> * Mensaje: "APTA" o "NO APTA" * * Diseño * * repetir * Leer D * Leer N * dimensionar el vector * ver si hay espacio en el heap, sino finalizar el programa * poblar el vector con las cotas de altura * Analizar si es apta o no la excursión. * hasta que N == 0 */ #include <stdio.h> #include <stdlib.h> #include <stdbool.h> // ------------------------Prototipos----------------------------- typedef unsigned long long ULL; void leerCotas( unsigned int *, ULL); bool esApta(unsigned int *, ULL, unsigned int); // ----------------------Programa Principal---------------------------- int main(void) { unsigned int desnivel; ULL cantidadCotas; unsigned int *vectorCotas = NULL; // ----------------------Proceso---------------------------- do { // Entradas scanf("%u", &desnivel); scanf("%llu", &cantidadCotas); if ( cantidadCotas == 0) break; vectorCotas = (unsigned int *) malloc ( sizeof(unsigned int) * cantidadCotas ); if ( vectorCotas == NULL) exit(EXIT_FAILURE); leerCotas( vectorCotas, cantidadCotas ); if ( esApta( vectorCotas, cantidadCotas, desnivel ) ) printf("APTA\n"); else printf("NO APTA\n"); free(vectorCotas); }while( 1 ); printf("--- FIN ---"); return 0; } void leerCotas( unsigned int *array, ULL quantity) { unsigned int i; for (i = 0 ; i < quantity ; i ++ ) scanf("%u", &array[i]); } bool esApta(unsigned int *array, ULL quantity, unsigned int unevenness) { unsigned int i; unsigned int sum = 0; for ( i = 0 ; i < quantity - 1 ; i ++) { if ( array[i] >= array[i + 1] ) sum = 0; else { sum = sum + (array[i + 1] - array[i]); if ( sum > unevenness ) return false; } } return true; }
run
|
edit
|
history
|
help
0
Project 5 v.05
day 2
readability!
Goodone tricky
Project 3 Part 1 v1.0
150112_CribaErastotenes
9
PJE
use_of_bool_in_loop
Minus pointer