/*
 * Translate the following codes to full Pascal programs 
 */

//Scope of variable

#include <stdio.h>
#include <stdlib.h>
int count = 1;
int a[5] = {1,6,12,11,0};
void Fun1(){
    int i;
    count= count+2;
    for(i=0;i<count;i++)
        a[i]++;
    return;
}
void Fun2(){
    int i;
    for(i=0;i<count;i++)
        a[i] = a[i]+2;
    count--;
    return;
}
int main(void){
    int i;
    for(i=0;i<3;i++)
        (i%2==0 ? Fun1() : Fun2());
    return 0;
}
/*************************************************************************/
// Shell Sort
#include<stdio.h>
#define MAX 6

int main(void) {
    int a[MAX]={2,4,1,9,5,3};
    int i, j, increment, temp;
    increment = 3;
    while (increment > 0){
        for (i=0; i < MAX; i++){
            j = i;
            temp = a[i];
            while ((j >= increment) && (a[j-increment] > temp)){
                a[j] = a[j - increment];
                j = j - increment;
            }
            a[j] = temp;
        }
        if (increment/2 != 0)
            increment = increment/2;
        else if (increment == 1)
            increment = 0;
        else
            increment = 1;
    }
    return 0;

}
/*************************************************************************/
//Insertion Sort
#include<stdio.h>
#define MAX 7

int main(void) {
      int a[MAX]={2,4,1,9,5,10,7};
      int i, j, index;

    for (i=1; i < MAX; i++) {
        index = a[i];
        j = i;
        while ((j > 0) && (a[j-1] > index)){
            a[j] = a[j-1];
            j = j - 1;
        }
        a[j] = index;
      }
    return 0;
}

/************************************************************************/
//
#include<stdio.h>
char Result(int grade){
    return grade >= 90 ? 'A' :
          ((grade >= 80) ? 'B' :
          ((grade >= 70) ? 'C' :
          ((grade >= 60) ? 'D' : 'F' )));
}                    
int main(void){
    int student[]={0,45,67,97,88,75,56,80,60,79,83,91,62};
    int i;
    char Letter1,Letter2,Letter3;
    for(i=0;i<=10;i+=3) {
        Letter1=Result(student[i]);
        Letter2=Result(student[i+1]);
        Letter3=Result(student[i+2]);
    }
    return 0;
}

/**************************************************************/
//Slow GCD-like
#include<stdio.h>
int main(void){
    int A=15;
    int B=10;
    int C=B;
    while(!( (A%C)==0 && (B%C)==0 ) ) C--;
    A=A/C;     
    B=B/C;
    return 0;
}