//1a questão - INICIO
#include <stdio.h>
#include <math.h>
struct Circulo
{
int coordX;
int coordY;
int raio;
};
int main()
{
int d;
struct Circulo c1, c2;
printf("Digite os dados do primeiro circulo: ");
scanf("%d %d %d",&c1.coordX,&c1.coordY,&c1.raio);
printf("nDigite os dados do segundo circulo: ");
scanf("%d %d %d",&c2.coordX,&c2.coordY,&c2.raio);
d = sqrt( (c1.coordX-c2.coordX)*(c1.coordX-c2.coordX) + (c1.coordY-c2.coordY)*(c1.coordY-
c2.coordY));
if(d > (c1.raio+c2.raio))
printf("nnOs circulos nao se sobrepoem.n");
else
printf("nnOs circulos se sobrepoem.n");
}
//1a questão - FIM
//2a questão - INICIO
int compara_string(char str1[], char str2[])
{
int i;
int tam2, tam2;
tam1 = strlen(tam1);
tam2 = strlen(tam2);
if(tam1 != tam2)
return 0;
else
{
for(i=0;i<tam1;i++)
{
if(str1[i] != str2[i])
{
return 0;
}
}
return 1;
}
}
//2a questão - FIM
//3a questão - INICIO
float desvio_padrao(float valores[], int tamanho)
{
float media=0,s=0;
int i;
for(i=0;i<tamanho;i++)
media = media + valores[i];
media = media / tamanho;
for(i=0;i<tamanho;i++)
s = s + (valores[i]-media)*(valores[i]-media);
s = s/(tamanho-1;)
s = sqrt(s);
return s;
}
//3a questao - FIM
//4a questao - INICIO
int palindromo(char str[])
{
int i,j;
int tamanho;
tamanho = strlen(str);
for(i=0,j=tamanho-1;i<j;i++,j--)
{
if(str[i] != str[j])
return 0;
}
return 1;
}
//4a questao - FIM
//5a questao - INICIO
int escalar(int vetA[], int vetB[], int tamanho)
{
int s=0,i;
for(i=0;i<tamanho;i++)
{
s = s + vetA[i]*vetB[i];
}
return s;
}
//5a questao - FIM
//6a questao - INICIO
int fatorial_impar_ITE(int numero)
{
int s=1,i;
if(numero%2 != 0)
{
printf("nO numero de entrada nao eh impar.");
return -1;
}
for(i=numero;i>1;i=i-2)
s = s * i;
return s;
}
int fatorial_impar_REC(int numero)
{
if(numero%2 != 0)
{
printf("nO numero de entrada nao eh impar.");
return -1;
}
if(numero==1)
return 1;
else
return numero * fatorial_impar_REC(numero - 2)
}
//6a questao - FIM
//7a questao - INICIO
int exp_ITE(int base, int expoente)
{
int i, r=1;
for(i=0;i<expoente;i++)
{
r = r*base;
}
return base;
}
int exp_REC(int base, int expoente)
{
if(expoente==1)
return base;
else
return base*exp_REC(base,expoente-1);
}
//7a questao - FIM
//8a questao - INICIO
void remover(int vetor[], int tamanho, int numero)
{
int i;
int pos=-1;
for(i=0;i<tamanho;i++)
{
if(vetor[i]==numero)
{
pos = i;
break;
}
}
if(pos != -1)
{
for(i=pos;i<tamanho-1;i++)
{
vetor[i] = vetor[i+1];
}
vetor[tamanho-1] = -1;
}
}
//8a questao - FIM
//9a questao - INICIO
int soma(int matriz[100][100])
{
int s = 0, i, j;
for(i=0;i<100;i++)
{
for(j=0;j<100;j++)
{
if(i!=j)
s = s + matriz[i][j];
}
}
return s;
}
//11a questao - INICIO
int triangular(int matriz[100][100])
{
int s = 0, i, j;
for(i=0;i<100;i++)
{
for(j=0;j<100;j++)
{
if(i!=j)
s = s + matriz[i][j];
}
}
return s;
}
//11a questao - FIM
//16a questao - INICIO
int identidade(int mat[][100])
{
int i,j;
for(i=0;i<100;i++)
{
for(j=0;j<100;j++)
{
if(i==j && mat[i][j]!=1)
return 0;
if(i!=j && mat[i][j]!=0)
return 0;
}
}
return 1;
}
//16a questao - FIM
//17a questao - INICIO
void imprime(struct aluno Alunos[])
{
int i;
for(i=0;i<100;i++)
{
if(Alunos[i].notas[0]>=7 && Alunos[i].notas[1]>=7 && Alunos[i].notas[2]>=7 &&
Alunos[i].qtdeFaltas<10)
printf("n%s",Alunos[i].nome);
}
}
//17a questao - FIM
//18a questao - INICIO
int restoRec(int num, int dem)
{
if(num <= dem)
return num;
else
return restoRec(num-dem,num);
}
//18a questao - FIM
//19a questao - INICIO
int somaRec(int N)
{
if(N==1)
return 1;
else
return N+somaRec(N-1);
}
//19a questao - FIM
//20a questao - INICIO
int somaImparRec(int N)
{
if(N==1)
return 1;
else
return 2*N-1 + somaImparRec(N-1);
}
//20a questao - FIM

Gabarito funcoes

  • 1.
    //1a questão -INICIO #include <stdio.h> #include <math.h> struct Circulo { int coordX; int coordY; int raio; }; int main() { int d; struct Circulo c1, c2; printf("Digite os dados do primeiro circulo: "); scanf("%d %d %d",&c1.coordX,&c1.coordY,&c1.raio); printf("nDigite os dados do segundo circulo: "); scanf("%d %d %d",&c2.coordX,&c2.coordY,&c2.raio); d = sqrt( (c1.coordX-c2.coordX)*(c1.coordX-c2.coordX) + (c1.coordY-c2.coordY)*(c1.coordY- c2.coordY)); if(d > (c1.raio+c2.raio)) printf("nnOs circulos nao se sobrepoem.n"); else printf("nnOs circulos se sobrepoem.n"); } //1a questão - FIM //2a questão - INICIO int compara_string(char str1[], char str2[]) { int i; int tam2, tam2; tam1 = strlen(tam1); tam2 = strlen(tam2); if(tam1 != tam2) return 0; else { for(i=0;i<tam1;i++) { if(str1[i] != str2[i]) { return 0; }
  • 2.
    } return 1; } } //2a questão- FIM //3a questão - INICIO float desvio_padrao(float valores[], int tamanho) { float media=0,s=0; int i; for(i=0;i<tamanho;i++) media = media + valores[i]; media = media / tamanho; for(i=0;i<tamanho;i++) s = s + (valores[i]-media)*(valores[i]-media); s = s/(tamanho-1;) s = sqrt(s); return s; } //3a questao - FIM //4a questao - INICIO int palindromo(char str[]) { int i,j; int tamanho; tamanho = strlen(str); for(i=0,j=tamanho-1;i<j;i++,j--) { if(str[i] != str[j]) return 0; } return 1; } //4a questao - FIM //5a questao - INICIO int escalar(int vetA[], int vetB[], int tamanho) { int s=0,i;
  • 3.
    for(i=0;i<tamanho;i++) { s = s+ vetA[i]*vetB[i]; } return s; } //5a questao - FIM //6a questao - INICIO int fatorial_impar_ITE(int numero) { int s=1,i; if(numero%2 != 0) { printf("nO numero de entrada nao eh impar."); return -1; } for(i=numero;i>1;i=i-2) s = s * i; return s; } int fatorial_impar_REC(int numero) { if(numero%2 != 0) { printf("nO numero de entrada nao eh impar."); return -1; } if(numero==1) return 1; else return numero * fatorial_impar_REC(numero - 2) } //6a questao - FIM //7a questao - INICIO int exp_ITE(int base, int expoente) { int i, r=1; for(i=0;i<expoente;i++) { r = r*base; } return base; }
  • 4.
    int exp_REC(int base,int expoente) { if(expoente==1) return base; else return base*exp_REC(base,expoente-1); } //7a questao - FIM //8a questao - INICIO void remover(int vetor[], int tamanho, int numero) { int i; int pos=-1; for(i=0;i<tamanho;i++) { if(vetor[i]==numero) { pos = i; break; } } if(pos != -1) { for(i=pos;i<tamanho-1;i++) { vetor[i] = vetor[i+1]; } vetor[tamanho-1] = -1; } } //8a questao - FIM //9a questao - INICIO int soma(int matriz[100][100]) { int s = 0, i, j; for(i=0;i<100;i++) { for(j=0;j<100;j++) { if(i!=j) s = s + matriz[i][j]; } } return s; }
  • 5.
    //11a questao -INICIO int triangular(int matriz[100][100]) { int s = 0, i, j; for(i=0;i<100;i++) { for(j=0;j<100;j++) { if(i!=j) s = s + matriz[i][j]; } } return s; } //11a questao - FIM //16a questao - INICIO int identidade(int mat[][100]) { int i,j; for(i=0;i<100;i++) { for(j=0;j<100;j++) { if(i==j && mat[i][j]!=1) return 0; if(i!=j && mat[i][j]!=0) return 0; } } return 1; } //16a questao - FIM //17a questao - INICIO void imprime(struct aluno Alunos[]) { int i; for(i=0;i<100;i++) { if(Alunos[i].notas[0]>=7 && Alunos[i].notas[1]>=7 && Alunos[i].notas[2]>=7 && Alunos[i].qtdeFaltas<10) printf("n%s",Alunos[i].nome); } }
  • 6.
    //17a questao -FIM //18a questao - INICIO int restoRec(int num, int dem) { if(num <= dem) return num; else return restoRec(num-dem,num); } //18a questao - FIM //19a questao - INICIO int somaRec(int N) { if(N==1) return 1; else return N+somaRec(N-1); } //19a questao - FIM //20a questao - INICIO int somaImparRec(int N) { if(N==1) return 1; else return 2*N-1 + somaImparRec(N-1); } //20a questao - FIM