Created
April 21, 2017 14:13
-
-
Save masterfermin02/9a14bff4c251a4f200e64612516116fb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
int main(void) { | |
// your code goes here | |
/* local variable definition */ | |
int arrlenth; | |
int *list; | |
int minvalue; | |
int maxvalue; | |
int i; | |
printf( "Digite cantidad elementos : "); | |
scanf("%d",&arrlenth); | |
list = (int *)malloc(arrlenth * sizeof(int)); | |
for (i = 0; i < arrlenth; i++){ | |
printf( "Digite en [%d] : ", i); | |
scanf("%d",&list[i]); | |
} | |
maxvalue = maxInArray(list, arrlenth, 0, list[0]); | |
printf( "Max value is : %d\n", maxvalue); | |
printf( "Min value is : %d\n", minInArray(list, arrlenth, 0, maxvalue)); | |
if(isMayoritario(list, arrlenth) == 1) | |
printf( "El arreglo es mayoritario \n"); | |
else | |
printf( "El arreglo no es mayoritario \n"); | |
return 0; | |
} | |
int maxInArray(int *array,int lenth,int pos, int maxnum){ | |
int a = array[pos]; | |
maxnum = max(a, maxnum); | |
if(pos >= lenth) | |
return maxnum; | |
return maxInArray(array,lenth,pos + 1, maxnum); | |
} | |
int minInArray(int *array,int lenth,int pos, int minnum){ | |
int a = array[pos]; | |
minnum = min(a, minnum); | |
if(pos >= lenth - 1) | |
return minnum; | |
return minInArray(array, lenth, pos + 1, minnum); | |
} | |
int isMayoritario(int *list,int lenth){ | |
int i = 0; | |
for(i = 0; i < lenth; i++){ | |
int repeticiones = getRepeticiones(list[i], list, lenth); | |
if(repeticiones > (lenth / 2)) | |
return 1; | |
} | |
return 0; | |
} | |
int getRepeticiones(int elem, int *list,int lenth){ | |
int rep = 0, i; | |
for(i = 0; i < lenth; i++){ | |
if(elem == list[i]) | |
rep ++; | |
} | |
return rep; | |
} | |
/* function returning the max between two numbers */ | |
int max(int num1, int num2) { | |
/* local variable declaration */ | |
int result; | |
if (num1 > num2) | |
result = num1; | |
else | |
result = num2; | |
return result; | |
} | |
/* function returning the max between two numbers */ | |
int min(int num1, int num2) { | |
/* local variable declaration */ | |
int result; | |
if (num1 < num2) | |
result = num1; | |
else | |
result = num2; | |
return result; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment