/*Lista de exercícios disponível em: https://www.limontec.com/2018/05/aula-2-21-linguagem-c-ltcode.html
Note que a resolução dos exercícios estão juntas no mesmo arquivo,
portanto para rodar copie os códigos separadamente
e salve cada um como numero-do-exercicio.c*/
//Exercício 1
#include <stdio.h>
void numera(int *x, int *y, int *z){
int temp;
if(*x>*y){
temp=*x;
*x=*y;
*y=temp;
}
if(*x>*z){
temp=*x;
*x=*z;
*z=temp;
}
if(*y>*z){
temp=*y;
*y=*z;
*z=temp;
}
}
int main(){
int x, y, z;
printf("Digite um numero: ");
scanf("%d",&x);
printf("Digite mais um numero: ");
scanf("%d",&y);
printf("Digite outro numero: ");
scanf("%d",&z);
printf("x=%d\\ny=%d\\nz=%d\\n",x,y,z);
numera(&x,&y,&z);
printf("x=%d\\ny=%d\\nz=%d\\n",x,y,z);
return 0;
}
//Exercício 2
#include <stdio.h>
#include <stdlib.h>
void leitura(int n, int vetor[]){
int i;
for(i=0;i<n;i++){
printf("\\nDigite o %dº numero: ",i+1);
scanf("%d",&vetor[i]);
}
}
int main(){
int n, *vetor, i;
printf("Digite o tamanho do vetor: ");
scanf("%d",&n);
vetor=(int *) malloc(n*sizeof(int));
leitura(n,vetor);
printf("\\nValores do vetor: ");
for(i=0;i<n;i++){
printf("\\n%d",vetor[i]);
}
free(vetor);
return 0;
}
//Exercicio 3
#include <stdio.h>
#include <stdlib.h>
void preenche(int tam, int vetor[]){
int i;
for(i=0;i<tam;i++){
printf("%dº elementos: ",i+1);
scanf("%d",&vetor[i]);
}
}
int soma(int tam, int vetor[]){
int i, sm=0;
for(i=0;i<tam;i++){
sm=sm+vetor[i];
}
return sm;
}
int main(){
int tam, *vetor, resultado;
printf("Digite quantos numeros deseja somar: ");
scanf("%d",&tam);
vetor=(int *) malloc(tam*sizeof(int));
preenche(tam,vetor);
resultado=soma(tam,vetor);
printf("Resultado da soma: %d",resultado);
free(vetor);
return 0;
}
//Exercicio 4
#include <stdio.h>
#include <stdlib.h>
void ordena(int n, int vetor[]){
int i, j, temp;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(vetor[i]<vetor[j]){
temp=vetor[i];
vetor[i]=vetor[j];
vetor[j]=temp;
}
}
}
}
void preenche(int n, int vetor[]){
int i;
for(i=0;i<n;i++){
printf("Digite o %dº elemento: ",i+1);
scanf("%d",&vetor[i]);
}
}
int main(){
int n, *vetor, i;
printf("Digite quantos numeros deseja ordenar: ");
scanf("%d",&n);
vetor=(int *) malloc(n*sizeof(int));
preenche(n,vetor);
ordena(n,vetor);
printf("Numeros ordenados: ");
for(i=0;i<n;i++){
printf("%d ",vetor[i]);
}
free(vetor);
return 0;
}
//Exercicio 5
#include <stdio.h>
#include <string.h>
#define N 100
#define MAX_CONTA 100
typedef struct banco{
int numero;
char nome[N];
int saldo;
}CLIENTE;
int confere_banco(CLIENTE conta[], int j){
int i, confere=0;
for(i=0;i<MAX_CONTA;i++){
if(conta[i].numero==conta[j].numero){
confere++;
}
}
return confere;
}
void cadastra(CLIENTE conta[]){
int i, j, condicao, sai;
for(i=0;i<MAX_CONTA;i++){
sai=0;
while(sai==0){
printf("Digite o numero da conta: ");
scanf("%d",&conta[i].numero);
getchar();
j=i;
condicao=confere_banco(conta,j);
if(condicao==1){
sai=1;
}
else{
printf("Essa conta já existe, digite outra.\\n");
}
}
//printf("%d",condicao);
printf("Digite o nome: ");
fgets(conta[i].nome,N,stdin);
printf("Digite o saldo: ");
scanf("%d",&conta[i].saldo);
getchar();
}
}
void exibe(CLIENTE conta){
printf("\\nNumero: %d",conta.numero);
printf("\\nNome: %s",conta.nome);
printf("Saldo: %d",conta.saldo);
}
int main(){
CLIENTE conta[MAX_CONTA];
cadastra(conta);
printf("==INFO CC=="); //zoeira
for(int i=0;i<MAX_CONTA;i++){
printf("\\n");
exibe(conta[i]);
}
return 0;
}
//Exercicio 6
#include <stdio.h>
#define N 100
int main(){
FILE *fp;
char nome[N],c;
int i=0;
printf("Digite o nome do arquivo: ");
scanf("%s",nome);
fp=fopen(nome,"r");
if(!fp){
printf("Erro na abertura do arquivo!");
return 0;
}
printf("\\n\\n");
c=fgetc(fp);
while(!feof(fp)){
if(c==65 || c==97){
i++;
}
c=fgetc(fp);
}
fclose(fp);
printf("Quantidade de letras A: %d",i);
return 0;
}