Você está na página 1de 14

UNIVERSIDADE ESTADUAL DE MARING

DEPARTAMENTO DE INFORMTICA
Prof. Wesley Romo
6879-01 Fundamentos de Algoritmos

Alan Lopes de Sousa Freitas


RA: 99659

LISTA DE EXERCCIOS No 12

Maring
24 de Novembro de 2016

1)
#include<stdio.h>

int main(){

int n, pares = 0, impares = 0, nulos = 0, num;


printf("\nDigite a quantidade de numeros a serem analisados:");
scanf("%d", &n);
for(int i=0;i<n;i++){
printf("\nDigite o %d numero:", i+1);
scanf("%d", &num);
if(num==0)
nulos++;
else if(num%2==0)
pares++;
else
impares++;
}

printf("\nPares: %d \nImpares: %d \nNulos: %d\n", pares, impares, nulos);


return 0;
}
2)

#include<stdio.h>

int main(){
int n, pos_menor = 0, pos_troca = 0;
printf("\nDigite o tamanho do vetor:");
scanf("%d", &n);
int v[n];
printf("\nV[0]:");

scanf("%d", &v[0]);
int menor = v[0];
for(int i=1;i<n;i++){
printf("\nV[%d]:", i);
scanf("%d", &v[i]);
if(v[i]< menor){
menor = v[i];
pos_menor = i;
}
}
int existe_menor = 1;
while(pos_troca < n){
v[pos_menor] = v[pos_troca];
v[pos_troca] = menor;
pos_troca += 1;
menor = v[pos_troca];
existe_menor = 0;
for(int i=pos_troca; i<n;i++){
if(v[i]< menor){
menor = v[i];
pos_menor = i;
existe_menor = 1;
}
}
}
printf("\nVetor ordenado\n");
for(int i=0;i<n;i++)
printf("%3d ", v[i]);

return 0;
}

3)

#include<stdio.h>

int main(){
int tam_vetor, qnt_num = 0, num;
printf("\nDigite o tamanho do vetor:");
scanf("%d", &tam_vetor);
int v[tam_vetor];
for(int i=0;i<tam_vetor;i++){
printf("\nV[%d]:", i);
scanf("%d", &v[i]);
}
printf("\nDigite o elemento a ser buscado no vetor:");
scanf("%d", &num);
printf("\nposicoes:");
for(int i=0;i<tam_vetor;i++){
if(v[i] == num){
printf("%4d", i);
qnt_num++;
}
}
printf("\nQuantidade: %d", qnt_num);
return 0;
}

4)

#include<stdio.h>

int main(){
int coordenadas = -1;
float h, soma = 0;
while(coordenadas<0 || coordenadas>50){
printf("Numero de abscissas: ");
scanf("%d", &coordenadas);
}
printf("\nValor de H: ");

scanf("%f", &h);

float y[coordenadas];
float area = 0;
for(int i=0;i<coordenadas;i++){
printf("%d ordenada y:", i+1);
scanf("%f", &y[i]);
if(i!=0 && i!=(coordenadas-1))
soma += 2*y[i];
else
soma +=y[i];
}

area = 0.5*h*soma;
printf("\nArea: %.2f", area);
return 0;
}
5)

#include<stdio.h>

int main(){

int n, comp, k = 1, troca, elemento, qnt_elemento = 0, count = 0;


int n_cresc = 0;
printf("\nTamanho do vetor1 e vetor2:");
scanf("%d", &n);
int v1[n], v2[n], v3[2*n];
printf("\nDigite os valores para o vetor1.\n");
scanf("%d", &v1[0]);
for(int i=1;i<n;i++){
scanf("%d", &v1[i]);
if(v1[i-1]>v1[i])
n_cresc = 1;
}
char opc;

printf("\nopcao: ");
scanf(" %c", &opc);
switch(opc){
case 'a':
if(n_cresc)
printf("\nvetor nao esta em ordem crescente");
else
printf("\nvetor em ordem crescente");
break;
case 'b':
for(int i=0;i<n;i++)
v2[i] == v1[i];
break;
case 'c':
printf("\nVetor invertido.\n");
for(int i=0;i<n;i++){
v2[i] = v1[n-k];
k++;
printf("%2d", v2[i]);
}
break;
case 'd':
for(int i=0;i<(n/2);i++){
troca = v1[i];
v1[i] = v1[n-k];
v1[n-k] = troca;
k++;
}
printf("\nVetor invertido.\n");
for(int i=0;i<n;i++)
printf("%2d", v1[i]);
break;
case 'e':
printf("\nInsira valores ordenadamente no vetor1. \n");
for(int i=0;i<n;i++){
scanf("%d", &v1[i]);
}

printf("\nInsira valores ordenadamente no vetor2. \n");


for(int i=0;i<n;i++){
scanf("%d", &v2[i]);
}
for(int i=0;i<2*n;i++){
if(i<n)
v3[i] = v1[i];
else{
v3[i] = v2[count];
count++;
}
printf("%3d", v3[i]);
}

break;
case 'f':
printf("\nDigite um elemento para ser eliminado do vetor1:");
scanf("%d", &elemento);
for(int i=0;i<n;i++)
if(v1[i] == elemento)
qnt_elemento++;

k = 0;
for(int i=0;i<n;i++)
if(v1[i] != elemento ){
v2[k] = v1[i];
k++;
}
printf("\nVetor com o elemento eliminado.\n");
for(int i=0;i<n-qnt_elemento;i++)
printf("%2d", v2[i]);

break;
case 'g':

printf("\nInsira somente valores positivos no vetor1. \n");


for(int i=0;i<n;i++){
scanf("%d", &v1[i]);
}
for(int i=0; i<n;i++){
comp = v1[i];
for(int j=i;j<n;j++){
if(comp > 0 && i!=j)
if(comp == v1[j]){
qnt_elemento++;
v1[j] = -1;
}
if(comp > 0 && i==n-1)
qnt_elemento++;

}
if(comp > 0)
printf("\n%d aparece %d vezes", comp, qnt_elemento);
qnt_elemento = 0;
}
break;

return 0;
}

6)

#include<stdio.h>

int main(){
int linha_a,coluna_a, linha_b, coluna_b, x, k;
printf("\nDigite a ordem da matriz A:");
scanf("%d %d", &linha_a, &coluna_a);

int a[linha_a][coluna_a], t[coluna_a][linha_a];


for(int i=0;i<linha_a;i++)
for(int j=0;j<coluna_a;j++){
printf("\nA[%d][%d]:", i, j);
scanf("%d", &a[i][j]);
}
while(linha_b != coluna_a || coluna_b != linha_a ){
printf("\nDigite a ordem da matriz B:");
scanf("%d %d", &linha_b, &coluna_b);
}
int b[linha_b][coluna_b], d[linha_b][coluna_b];
for(int i=0;i<linha_b;i++)
for(int j=0;j<coluna_b;j++){
printf("\nB[%d][%d]:", i, j);
scanf("%d", &b[i][j]);
}
printf("\nDigite uma constante:");
scanf("%d", &x);
//Operao transposta da matriz A
//printf("\ntransposta:\n");
for(int i=0;i<linha_a;i++)
for(int j=0;j<coluna_a;j++)
t[j][i] = a[i][j];
//Operao da multiplicao da matriz B pela constante
for(int i=0;i<linha_b;i++){
for(int j=0;j<coluna_b;j++){
b[i][j] *= x;
d[i][j] = b[i][j] + t[i][j];
printf("%3d", d[i][j]);
}
printf("\n");
}

return 0;
}
7)

#include<stdio.h>

int main(){

int linha_a,coluna_a, linha_b, coluna_b;


printf("\nDigite a ordem da matriz A:");
scanf("%d %d", &linha_a, &coluna_a);
int a[linha_a][coluna_a];
for(int i=0;i<linha_a;i++)
for(int j=0;j<coluna_a;j++){
printf("\nA[%d][%d]:", i, j);
scanf("%d", &a[i][j]);
}

printf("\nDigite a ordem da matriz B:");


scanf("%d %d", &linha_b, &coluna_b);

int b[linha_b][coluna_b];
for(int i=0;i<linha_b;i++)
for(int j=0;j<coluna_b;j++){
printf("\nB[%d][%d]:", i, j);
scanf("%d", &b[i][j]);
}
int existe_diferente = 0;
if(linha_a == linha_b && coluna_a == coluna_b){
existe_diferente = -1;
for(int i=0;i<linha_a;i++){
for(int j=0;j<coluna_a;j++){
if(a[i][j] != b[j][i]){
existe_diferente = 1;
break;

}
}
if(existe_diferente>0)
break;
}

}else
printf("\nMatrizes nao sao iguais e simetricas");

if(existe_diferente>0)
printf("\nMatrizes nao sao iguais e simetricas");
else if(existe_diferente<0)
printf("\nMatrizes iguais e simetricas");

return 0;
}

8)

#include<stdio.h>

int main(){

int linha_a,coluna_a, k;
printf("\nDigite a ordem da matriz A:");
scanf("%d %d", &linha_a, &coluna_a);
int a[linha_a][coluna_a], t[coluna_a][linha_a];
for(int i=0;i<linha_a;i++)
for(int j=0;j<coluna_a;j++){
printf("\nA[%d][%d]:", i, j);
scanf("%d", &a[i][j]);
}

printf("\nMatriz transposta\n");
for(int i=0;i<linha_a;i++)
for(int j=0;j<coluna_a;j++)
t[j][i] = a[i][j];

for(int i=0;i<coluna_a;i++){
for(int j=0;j<linha_a;j++){
printf("%2d", t[i][j]);
}
printf("\n");
}
return 0;
}
9)

#include<stdio.h>

#define n 5
#define m 5

int main(){

int a[n][m], b[n][m], d[n][m];


printf("\nDigite os valores da matriz A:");
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
printf("\nA[%d][%d]:", i, j);
scanf("%d", &a[i][j]);
}
printf("\nDigite os valores da matriz B:");
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
printf("\nB[%d][%d]:", i, j);
scanf("%d", &b[i][j]);
d[i][j] = a[i][j] - b[i][j];

}
printf("\nMatriz diferenca\n");
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
printf("%3d", d[i][j]);
}
printf("\n");
}

return 0;
}
10)

#include<stdio.h>

#define n 2
#define m 2
int main(){

int a[n][m], s1 = 1, s2 = 1;
printf("\nDigite os valores da matriz A:");
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
printf("\nA[%d][%d]:", i, j);
scanf("%d", &a[i][j]);
if(i == j)
s1 *=a[i][j];
else
s2 *=a[i][j];
}

printf("\nDeterminante: %d", s1-s2);

return 0;
}

11)

#include<stdio.h>

#define n 5
#define m 5
int main(){

int a[n][m], n_triangular = 0;


printf("\nDigite os valores da matriz A:");
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
printf("\nA[%d][%d]:", i, j);
scanf("%d", &a[i][j]);
if(i > j && a[i][j] != 0)
n_triangular = 1;
}

if(n_triangular)
printf("\nMatriz nao e triangular superior");
else
printf("\nMatriz e triangular superior");

return 0;
}