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(); }