GatoBooster

MOD 3 Cuest 4 Preg 1 con 2 funciones

Sep 29th, 2017
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.47 KB | None | 0 0
  1. //gcc 5.4.0
  2.  
  3. #include  <stdio.h>
  4.  
  5. typedef struct posicion{
  6.     int x;
  7.     int y;
  8.     int menor;
  9. }Pos;
  10.  
  11. int ObtenerY(int[], int);
  12. int ObtenerX(int[], int, int, int);    
  13.  
  14. int main(void)
  15. {
  16.     //Declaración de Variables
  17.     Pos pos;
  18.     int largo;
  19.    
  20.     scanf("%d",&largo);
  21.    
  22.     //Rellenar el vector
  23.     int vector[largo];
  24.     int i, j, aux;
  25.     for(i = 0; i < largo; i++){
  26.         scanf("%d",&vector[i]);
  27.     }
  28.    
  29.     //Buscar el menor de los datos
  30.     pos.menor = vector[largo-1];
  31.     for(i = largo-1; i >= 0; i--){
  32.         if(pos.menor > vector[i]){
  33.             pos.menor = vector[i];
  34.         }
  35.     }
  36.    
  37.     //La posicion de Y
  38.     pos.y = ObtenerY(vector, largo);
  39.    
  40.     //La posicion de X
  41.     pos.x = ObtenerX(vector, largo, pos.menor, pos.y);      
  42.    
  43.     //printf("%d V1  ",vector[0]);printf("%d V2   ",vector[1]);printf("%d V3\n",vector[2]);
  44.    
  45.     //Ordenamiento del Vector
  46.     for(i = pos.x; i <= pos.y; i++){
  47.         for(j = pos.x; j <= pos.y && i != j; j++){
  48.             if(vector[i] < vector[j]){
  49.                 aux = vector[i];
  50.                 vector[i] = vector[j];
  51.                 vector[j] = aux;
  52.             }
  53.         }    
  54.     }
  55.     //Revisar si el Vector ordenado es Valido
  56.     for(i = 0; i < largo-1; i++){
  57.         if(vector[i] > vector[i+1]){
  58.             break;
  59.         }
  60.     }
  61.  
  62.     if(largo-1 == i){
  63.         printf("VERDADERO: desde x=%d hasta y=%d.",pos.x+1,pos.y+1);
  64.     }else{
  65.         printf("FALSO.");
  66.     }
  67.    
  68.     //printf("%dL\n",largo);printf("%d V1  ",vector[0]);printf("%d V2   ",vector[1]);printf("%d V3\n",vector[2]);
  69.     //printf("%dMenor\n",pos.menor);printf("%dY\n",pos.y);printf("%dX\n",pos.x);
  70.     //printf("%dI\n",i);
  71.    
  72.     return 0;
  73. }
  74.  
  75. //Buscar la posicion de Y
  76. int ObtenerY(int vector2[], int largoV){
  77.     int i, posY, menor;
  78.    
  79.         largoV--;
  80.         menor = vector2[largoV];
  81.         posY  = largoV;
  82.    
  83.         for(i = largoV; i >= 0; i--){
  84.             if(menor > vector2[i]){
  85.                 menor = vector2[i];
  86.                 posY = i;
  87.             }
  88.         }
  89.     return posY;
  90. }
  91.  
  92. //Buscar la posicion de X
  93. int ObtenerX(int vector2[], int largoV, int menor, int posY){
  94.     int i, posX = 0;
  95.    
  96.     for(i = 0; i < largoV-1; i++){
  97.         if(menor == vector2[i]){
  98.             if(posY == i){
  99.                 posX = i;
  100.             }else{
  101.                 posX = i+1;
  102.             }
  103.         }else{
  104.             break;
  105.         }
  106.     }    
  107.    
  108.     return posX;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment