Título: ternas en programacion en c, me dice este problema Publicado por: max123 en 11 Mayo 2019, 14:51 pm /*10. Una terna es hermosa si se cumple que a < b < c y se cumple que b - a = c - b = d. Dados N números
crecientes y el valor d, determine la cantidad de ternas hermosas que hay en la secuencia. Por ejemplo: la secuencia 2, 2, 3, 4, 5 y d=1. Hay 3 ternas hermosas (2, 3, 4) ? 3 - 2 = 4 - 3 = 1 (2, 3, 4) ? 3 - 2 = 4 - 3 = 1 (3, 4, 5) ? 4 - 3 = 5 - 4 = 1 */ no se como comenzar a plantearlo #include<stdio.h> int ingresar_orden(); void ingresar_vector(int n, int vector[]); void mostrar_vector(int n, int vector[]); int main(int argc, char *argv[]){ int vector[100]; int n; n=ingresar_orden(); ingresar_vector(n,vector); mostrar_vector(n,vector); return 0; } /*------------------------------------------------------------------------------------------------------------------------*/ /* FUNCION INGRESAR ORDEN DEL VECTOR /*------------------------------------------------------------------------------------------------------------------------*/ int ingresar_orden(){ int n; do{ printf("\t\tINGRESAR EL ORDEN :"); scanf("%i",&n); }while(n<0); return n; } /*------------------------------------------------------------------------------------------------------------------------*/ /* FUNCION INGRESAR VECTORES /*------------------------------------------------------------------------------------------------------------------------*/ void ingresar_vector(int n, int vector[]){ int i; printf("\t\tINGRESAR LOS LOS ELEMNTOS \n"); for(i=0;i<n;i++){ /*se utiliza i, para recorrer desde el casillero 0 hasta N-1*/ fgetc(stdin);/*Limpia el buffer producido por el scanf anterior*/ printf("\t\t\tINGRESAR EL ELEMENTO PARA LA POSICION [%i]: ",i); scanf("%i",&vector); /*ubica el numero ingresado en el casillero i*/ } return; } /*------------------------------------------------------------------------------------------------------------------------*/ /* FUNCION MOSTRAR VECTOR /*------------------------------------------------------------------------------------------------------------------------*/ /*funcion para mostrar los vectores ingresados */ void mostrar_vector(int n, int vector[]){ int i; printf("\t\tLOS TIPOS DE ELEMENTOS INGRESADOS SON :\n"); printf("\n\n\t\tV = ( "); for(i=0;i<n;i++){ /*se utiliza i, para recorrer desde el casillero 0 hasta N-1*/ if(i<n-1){ printf("%i, ",vector); } else{ printf("%i ",vector); /*muestra el número ubicado en el casillero i*/ } } printf(")\n\n"); return; } Título: Re: ternas en programacion en c, me dice este problema Publicado por: K-YreX en 11 Mayo 2019, 20:01 pm Si conoces tanto la secuencia como el valor d, necesitas tres bucles cada uno para ir avanzando por el array a un ritmo distinto e ir comprobando que la distancia entre los elementos a los que apunta cada índice de cada bucle es igual a d.
Te dejo que lo intentes programar y si tienes más dudas pon tus avances para ayudarte. PD: Para la próxima pon tus códigos entre etiquetas de código GeSHi y hay un subforo de C/C++ por lo que puede que muevan este tema. PD 2: Las funciones que no retornan nada (void) no necesitan llevar un <return> al final. |