/*
 ============================================================================
 Name        : 1.c
 Author      : 
 Version     :
 Copyright   : Your copyright notice
 Description : Hello World in C, Ansi-style
 ============================================================================
 */

#include <stdio.h>
#include <stdlib.h>

#define TAM 5
#define IDONEO 200
#define TAM_FITA 50
#define VAZIO 32
#define REAGENTE '*'

void questao1(){
  int N;
  int iCont, jCont;
  float S;

  puts("Informe a quantidade de termos:");
  scanf("%d", &N);
  S = 0;
  for(iCont = 1, jCont = N; iCont <= N; iCont++, jCont--){
	  S += iCont/((float) (jCont));
  }
  printf("Valor da Soma: %f\n", S);
}

void questao2(){
  int iCont;
  int vet[TAM];
  int posicao = -1;
  int elem;
  int atual, ant, aux;

  for(int iCont = 0; iCont < TAM; iCont++){
	  printf("Informe vet[%d]:\n", iCont);
	  scanf("%d", &vet[iCont]);
  };

  for(iCont = TAM-1; iCont >=0 && posicao == -1; iCont--){
	  elem = vet[iCont];
	  atual = ant = 1;
	  while(atual <= elem){
		  if(atual == elem)
			  posicao = iCont;
		  aux = atual;
		  atual = atual + ant;
		  ant = aux;
	  }
  };
  printf("O indice do ultimo elemento da sequencia: %d\n", posicao);
}

void questao3(){
  int iCont, jCont, kCont, lCont;
  int idoneo;

  for(iCont = 1; iCont <= IDONEO; iCont++){
	  idoneo = 1;
	  for(jCont = 1; jCont <= iCont; jCont++)
		  for(kCont = 2; kCont <= iCont; kCont++)
			  for(lCont = 3; lCont <= iCont; lCont++)
				  if(jCont!= kCont && jCont != lCont && kCont!= lCont &&
				     jCont*lCont+ jCont*kCont+ lCont*kCont == iCont)
					    idoneo = 0;
     if(idoneo == 1)
	   printf("%d ", iCont);
  }
}

void questao4(){
  char fita[TAM_FITA];
  int iCont = 0;
  int pingar;
  int dias;
  int tingirAnt, tingirPos;
  int fitaCompleta;

  for(iCont = 0; iCont < TAM_FITA; iCont++)
    fita[iCont] = VAZIO;

  do{
	puts("Informe a posi¨‹o para gotejar reagente e -1 para terminar:\n");
	scanf("%d", &pingar);
	if(pingar >= 0)
	  fita[pingar] = REAGENTE;
  }while(pingar != -1);

  dias = 0;
  do{
   printf("%2d - ", dias);
   printf("|");
   for(iCont = 0; iCont < TAM_FITA; iCont++)
	 printf("%c|", fita[iCont]);
   printf("\n");
   fitaCompleta = 1;
   for(iCont = 0; iCont < TAM_FITA && fitaCompleta == 1; iCont++)
     if(fita[iCont] == VAZIO)
    	 fitaCompleta = 0;
   if(!fitaCompleta)
	   dias++;
   for(iCont = 0; iCont < TAM_FITA && fitaCompleta != 1; iCont++){
	   while(fita[iCont] == VAZIO)
		   iCont++;
	   tingirAnt = iCont-1;
	   while(fita[iCont] == REAGENTE)
		   iCont++;
	   tingirPos = iCont;
	   if(tingirAnt >= 0)
		   fita[tingirAnt] = REAGENTE;
	   if(tingirPos <= TAM_FITA)
		   fita[tingirPos] = REAGENTE;
   }
  }while(fitaCompleta != 1);

  printf("Dias: %d\n", dias);

}

main() {
	int questao;
	puts("Informe qual questao deseja executar:\n");
	scanf("%d", &questao);
	puts("Executando...");
	switch(questao){
	  case 1: questao1(); break;
	  case 2: questao2(); break;
	  case 3: questao3(); break;
	  case 4: questao4(); break;
	  default: puts("Quest‹o inexistente");
	}
	puts("\nFIM...");
}

