Respostas de exercícios selecionados
Exercício 1 da 2ª Lista de exercícios de ICC
#include<stdio.h>
#include<conio.h>
int main()
{
int num[10], imp=0, par=0, i, soma=0;
int vetor[10];
printf("Insira 10 numeros inteiros sendo 5 ímpares e 5 pares\n");
i=0;
do
{
printf("Insira o %do numero inteiro\n",i+1);
scanf("%d",&num[i]);
if (num[i]%2==0)
{
par=par+1;
i=i+1;
if(par>5)
{
printf("Voce ja inseriu os 5 numeros pares, insira um numero ímpar\n");
i=i-1;
par=par-1;
}
}
else
{
imp=imp+1;
i=i+1;
if(imp>5)
{
printf("Voce ja inseriu os 5 numeros ipares, insira um numero par\n");
i=i-1;
imp=imp-1;
}
}
soma=par+imp;
}while(soma<10);
par=0;
imp=5;
for(i=0;i<10;i++)
{
if((num[i]%2)==0)
{
vetor[par]=num[i];
par++;
}
else
{
vetor[imp]=num[i];
imp++;
}
}
for(i=0;i<10;i++)
num[i]=vetor[i];
printf("\nOs numeros entrados sao:\n");
for(i=0;i<10;i++)
printf("%d\n", num[i]);
getch();
}
Exercício 7 da 2ª Lista de exercícios de ICC
#include<stdio.h>
#include<conio.h>
void main()
{
struct dados{
char nome[100];
char snome[100];
};
struct dados usuario[3];
int matriz[10][10];
int CidadeDeOrigem, CidadeDeDestino, distancia, i, j, k, l;
float preco;
int NumeroUsuario=0, opcao;
char lixo[3];
do
{
do
{
printf("\n1. Entrar com as distancias ");
printf("\n2. Calcular o valor da passagem");
printf("\n3. Entre com o nome do usuário");
printf("\n4. Sair");
printf("\nDigute a opcao desejada: ");
scanf("%d", &opcao);
}while(opcao<0 || opcao>4);
if(opcao==1)
{
for(i=0; i<10; i++)
for(j=0; j<10; j++)
matriz[i][j]=-1;
for(j=0; j<10; j++)
matriz[j][j]=0;
for(k=0; k<10; k++)
{
for(l=0;l<10;l++)
printf("%d ", matriz[k][l]);
printf("\n");
}
for(i=1; i<10; i++)
{
for(j=0; j<10; j++)
{
do
{
printf("\nQual o indice da cidade de origem:");
scanf("%d", &CidadeDeOrigem);
printf("\nQual o indice da cidade de destino:");
scanf("%d", &CidadeDeDestino);
if(matriz[CidadeDeOrigem-1][CidadeDeDestino-1]>=0)
printf("Entre outras cidades, pois estas ja estao foram entradas");
}while(matriz[CidadeDeOrigem-1][CidadeDeDestino-1]>=0);
printf("\nQual a distancia entre as cidade %d e %d:", CidadeDeOrigem, CidadeDeDestino);
scanf("%d", &matriz[CidadeDeOrigem-1][CidadeDeDestino-1]);
printf("\nmatriz[%d][%d]=%d\n", CidadeDeOrigem-1, CidadeDeDestino-1, matriz[CidadeDeOrigem-1][CidadeDeDestino-1]);
matriz[CidadeDeDestino-1][CidadeDeOrigem-1]=matriz[CidadeDeOrigem-1][CidadeDeDestino-1];
for(k=0; k<10; k++)
{
for(l=0;l<10;l++)
printf("%d ", matriz[k][l]);
printf("\n");
}
}
}
}
else
{
if(opcao==2)
{
printf("\nQual o indice da cidade de origem:");
scanf("%d", &CidadeDeOrigem);
printf("\nQual o indice da cidade de destino:");
scanf("%d", &CidadeDeDestino);
preco=matriz[CidadeDeOrigem-1][CidadeDeDestino-1]*0.15;
printf("%d", matriz[CidadeDeOrigem-1][CidadeDeDestino-1]);
printf("\n\nO preco da passagem entre a cidade %d e a cidade%d e R$%.2f\n", CidadeDeOrigem,CidadeDeDestino,preco);
}
else
if(opcao==3)
{
if(NumeroUsuario<3)
{
printf("\nDigite o seu nome: ");
gets(lixo);
gets(usuario[NumeroUsuario].nome);
printf("\nDigite o seu sobrenome: ");
gets(usuario[NumeroUsuario].snome);
NumeroUsuario++;
}
else
printf("\n\nNumero de usuarios maximo atingido\n");
}
}
}while(opcao!=4);
}
Exercício de Laboratório da quantidade de chuva por cidade e por mês
#include<stdio.h>
#include<conio.h>
void main()
{
int matriz[4][12], MatrizAuxiliar[4][12];
int linha, coluna, mes, i, j;
int CodigoDaCidade;
int ChuvaPorCidade[4];
int ChuvaPorMes[12];
int maximo, MaiorCidade, MaiorMes;
for(linha=0; linha<4; linha++)
for(coluna=0; coluna<12; coluna++)
{
matriz[linha][coluna]=0;
MatrizAuxiliar[linha][coluna];
}
for(i=0; i<4; i++)
ChuvaPorCidade[i]=0;
for(i=0; i<12; i++)
ChuvaPorMes[i]=0;
for(i=1; i<5; i++)
for(j=1;j<13;j++)
{
do
{
do
{
printf("\nEntre com o codigo da cidade (de 1 a 4)");
scanf("%d", &CodigoDaCidade);
}while(CodigoDaCidade!=1 && CodigoDaCidade!=2 && CodigoDaCidade!=3 && CodigoDaCidade!=4);
CodigoDaCidade=CodigoDaCidade-1;
do
{
printf("\nEntre com o mes (de 1 a 12)");
scanf("%d", &mes);
}while(mes<0 || mes>12);
mes=mes-1;
if(MatrizAuxiliar[CodigoDaCidade][mes]==1)
printf("\nEsta cidade e este mes ja possuem valores entrados. Entre com outra cidade e mes\n");
}while(MatrizAuxiliar[CodigoDaCidade][mes]==1);
printf("\nEntre com a quantidade de chuva da cidade %d no mes %d:", CodigoDaCidade+1, mes+1);
scanf("%d", &matriz[CodigoDaCidade][mes]);
MatrizAuxiliar[CodigoDaCidade][mes]=1;
}
for(i=0; i<4; i++)
for(j=0; j<12; j++)
ChuvaPorCidade[i]=ChuvaPorCidade[i]+matriz[i][j];
for(i=0; i<4; i++)
printf("\nA quantidade de chuvas na cidade %d no ano foi: %d",i+1, ChuvaPorCidade[i]);
for(i=0; i<12; i++)
for(j=0; j<4; j++)
ChuvaPorMes[i]=ChuvaPorMes[i]+matriz[j][i];
for(i=0; i<12; i++)
printf("\nA media de chuvas no mes %d foi: %d", i+1, ChuvaPorMes[i]/4);
maximo=matriz[0][0];
MaiorCidade=0;
MaiorMes=0;
for(i=0; i<4; i++)
for(j=0; j<12; j++)
if(matriz[i][j]>maximo)
{
maximo=matriz[i][j];
MaiorCidade=i;
MaiorMes=j;
}
printf("\nA cidade %d no mes %d teve a maior quantidade de chuvas\n", MaiorCidade+1, MaiorMes+1);
}
Exercício de Laboratório do reservatório
#include<stdio.h>
#include<conio.h>
void main()
{
struct dados{
int dia[300];
int mes[300];
int ano[300];
int nivel[300];
int NumerosEntrados;
};
struct dados reservatorio[5];
int opcao;
int codigo;
int maximo, i, indice;
int DiaInicial, MesInicial, AnoInicial;
int DiaFinal, MesFinal, AnoFinal;
for(i=0;i<5;i++)
reservatorio[i].NumerosEntrados=0;
do
{
do
{
printf("\n1. Entrada de dados");
printf("\n2. Maximo");
printf("\n3. Valores por periodo");
printf("\n4. Mostrar reservatoi");
printf("\n5. Finalizar Programa");
printf("\nDigute a opcao desejada: ");
scanf("%d", &opcao);
}while(opcao<1 || opcao>5);
if(opcao==1)
//opcao 1 - entrando com os dados
{
do{
printf("\nQual o codigo do reservatorio(de 1 a 5): ");
scanf("%d", &codigo);
}while(codigo<1 || codigo>5);
codigo=codigo-1;
printf("\nQual o dia: ");
scanf("%d", &reservatorio[codigo].dia[reservatorio[codigo].NumerosEntrados]);
printf("\nQual o mes: ");
scanf("%d", &reservatorio[codigo].mes[reservatorio[codigo].NumerosEntrados]);
printf("\nQual o ano: ");
scanf("%d", &reservatorio[codigo].ano[reservatorio[codigo].NumerosEntrados]);
printf("\nQual o nivel: ");
scanf("%d", &reservatorio[codigo].nivel[reservatorio[codigo].NumerosEntrados]);
reservatorio[codigo].NumerosEntrados++;
}
else
{
if(opcao==2)
//opcao 2 - retorna o máximo
{
do{
printf("\nQual o codigo do reservatorio(de 1 a 5): ");
scanf("%d", &codigo);
}while(codigo<1 || codigo>5);
codigo=codigo-1;
maximo=reservatorio[codigo].nivel[0];
indice=0;
for(i=1; i<reservatorio[codigo].NumerosEntrados; i++)
{
if(reservatorio[codigo].nivel[i]>maximo)
{
maximo=reservatorio[codigo].nivel[i];
indice=i;
}
}
printf("\n dia de maior nivel do reservatorio %d foi %d", codigo+1, reservatorio[codigo].dia[indice]);
printf("\n mes de maior nivel do reservatorio %d foi %d", codigo+1, reservatorio[codigo].mes[indice]);
printf("\n ano de maior nivel do reservatorio %d foi %d", codigo+1, reservatorio[codigo].ano[indice]);
}
else
{
if(opcao==3)
//opcao 3 - apresenta dados em um periodo
{
do{
printf("\nQual o codigo do reservatorio(de 1 a 5): ");
scanf("%d", &codigo);
}while(codigo<1 || codigo>5);
codigo=codigo-1;
printf("\nQual o dia inicial: ");
scanf("%d", &DiaInicial);
printf("\nQual o mes inicial: ");
scanf("%d", &MesInicial);
printf("\nQual o ano inicial: ");
scanf("%d", &AnoInicial);
printf("\nQual o dia final: ");
scanf("%d", &DiaFinal);
printf("\nQual o mes final: ");
scanf("%d", &MesFinal);
printf("\nQual o ano final: ");
scanf("%d", &AnoFinal);
for(i=0; i<reservatorio[codigo].NumerosEntrados; i++)
{
if(reservatorio[codigo].ano[i]>AnoInicial && reservatorio[codigo].ano[i]<AnoFinal)
printf("\nO reservatorio %d no dia %d mes %d ano %d estava com o nivel em %d", codigo+1, reservatorio[codigo].dia[i],
reservatorio[codigo].mes[i], reservatorio[codigo].ano[i], reservatorio[codigo].nivel[i]);
else
if(reservatorio[codigo].ano[i]==AnoInicial)
{
if(reservatorio[codigo].mes[i]>MesInicial)
printf("\nO reservatorio %d no dia %d mes %d ano %d estava com o nivel em %d", codigo+1,
reservatorio[codigo].dia[i], reservatorio[codigo].mes[i], reservatorio[codigo].ano[i], reservatorio[codigo].nivel[i]);
else
if(reservatorio[codigo].mes[i]==MesInicial)
if(reservatorio[codigo].dia[i]>=DiaInicial)
printf("\nO reservatorio %d no dia %d mes %d ano %d estava com o nivel em %d", codigo+1,
reservatorio[codigo].dia[i], reservatorio[codigo].mes[i], reservatorio[codigo].ano[i], reservatorio[codigo].nivel[i]);
}
else
{
if(reservatorio[codigo].ano[i]==AnoFinal)
{
if(reservatorio[codigo].mes[i]<MesFinal)
printf("\nO reservatorio %d no dia %d mes %d ano %d estava com o nivel em %d", codigo+1,
reservatorio[codigo].dia[i], reservatorio[codigo].mes[i], reservatorio[codigo].ano[i], reservatorio[codigo].nivel[i]);
else
if(reservatorio[codigo].mes[i]==MesFinal)
if(reservatorio[codigo].dia[i]<=DiaFinal)
printf("\nO reservatorio %d no dia %d mes %d ano %d estava com o nivel em %d", codigo+1,
reservatorio[codigo].dia[i], reservatorio[codigo].mes[i], reservatorio[codigo].ano[i], reservatorio[codigo].nivel[i]);
}
}
}
}
else
if(opcao==4)
//opcao 4 - apresenta todos os dados
{
do{
printf("\nQual o codigo do reservatorio(de 1 a 5): ");
scanf("%d", &codigo);
}while(codigo<1 || codigo>5);
codigo=codigo-1;
for(i=0; i<reservatorio[codigo].NumerosEntrados; i++)
printf("\nO reservatorio %d no dia %d mes %d ano %d estava com o nivel em %d", codigo+1, reservatorio[codigo].dia[i],
reservatorio[codigo].mes[i], reservatorio[codigo].ano[i], reservatorio[codigo].nivel[i]);
}
}
}
}while(opcao!=5);
getch();
}
Download

Respostas de exercícios selecionados