Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
1. Escreva um programa que contenha duas variáveis inteiras. Compare seus endereços e exiba o maior endereço.*/ #include <stdio.h> int main(){ int x, y, *px, *py; printf("Digite dois numeros inteiros: "); scanf("%d%d",&x,&y); px = &x; py = &y; if(px>py) printf("\nEndereco de (x) %d = %p maior que o endereco de %d = %p",x,px,y,py); else printf("\nEndereco de (y) %d = %p maior que o endereco de %d = %p",y,py,x,px); return 0; } 2. Crie um programa que contenha um array de float contendo 10 elementos. Imprima o endereço de cada posição desse array.*/ #include <stdio.h> #define TF 10 int main(){ float vet[TF] = {3.1,1.0,1.5,2.0,7.5,5.25,8.45,9.2,12.5,13.72}; int i; printf("\nVetor: "); for(i=0;i<TF;i++){ printf("%.2f ",vet[i]); } printf("\n\nEnderecos de cada posicao do vetor:\n"); for(i=0;i<TF;i++){ printf("[%d]: %.2f : %p\n",i, vet[i], vet+i); } return 0; } 3. Crie um programa que contenha uma matriz de float contendo 3 linhas e 3 colunas. Imprima o endereço de cada posição dessa matriz.*/ #include <stdio.h> #define TF 3 int main() { float matriz[TF][TF] = {1.5, 2.1, 3.2, 4.0, 8.2, 6.7, 7.0, 8.6, 9.2}; int i, j; printf("Matriz %dX%d:",TF,TF); for(i=0;i<TF;i++){ printf("\n"); for(j=0;j<TF;j++) printf("%.1f ", matriz[i][j]); } printf("\n\nMatriz %dX%d:\n",TF,TF); for(i=0;i<TF;i++) for(j=0;j<TF;j++) printf("[%d][%d]: %p\n",i,j,&matriz[i][j]); return 0; } 4. Escreva um programa que imprima um vetor de inteiros na ordem inversa endereçando os elementos com um ponteiro.*/ #include <stdio.h> #include <stdlib.h> #include <time.h> #define TF 6 int main(){ int vetor[TF], i, *p; srand(time(NULL)); printf("Vetor: "); for(i=0;i<TF;i++){ vetor[i] = 1 + rand() % 100; printf("%2d ", vetor[i]); } p = vetor + TF-1; printf("\nInverso: "); for(i=0;i<TF;i++){ printf("%2d ", *(p--)); } return 0; } 5. Crie um programa que: (a) Aloque dinamicamente um array de 5 números inteiros; (b) Peça para o usuário digitar os 5 números no espaço alocado; (c) Mostre na tela os 5 números; (d) Libere a memória alocada.*/ #include <stdio.h> #include <stdlib.h> int main(){ int i, *p; p = (int*)malloc(5 * sizeof(int)); printf("Digite o valor de cada elemento do vetor de tamanho 5:\n"); for(i=0;i<5;i++){ printf("[%d]:",i); scanf("%d", &p[i]); } printf("\nVetor: "); for(i=0;i<5;i++){ printf("%d ", p[i]); } free(p); return 0; } 6. Faça um programa que leia uma quantidade qualquer de números armazenando-os na memmória e pare a leitura quando o usuário entrar com um numero negativo. Em seguida, imprima o vetor lido. Use a função REALLOC. */ #include <stdio.h> #include <stdlib.h> int main(){ int i, *vetor, tam=0, num; vetor = (int *) malloc(sizeof(void)); printf("Digite um numero (negativo para sair): "); scanf("%d", &num); while(num >= 0){ vetor = (int *) realloc(vetor, (tam+1) * sizeof(int)); if(!vetor) printf("Erro na alocacao de memoria!\n"); vetor[tam++] = num; printf("Digite um numero (negativo para sair): "); scanf("%d", &num); } printf("\nVetor: "); for(i=0;i<tam;i++) printf("%d ", vetor[i]); printf("\nTamanho alocado: %d\n", tam); free(vetor); return 0; } /* 7- Crie um programa que declare uma estrutura (registro) para o cadastro de alunos. 1. Deverão ser armazenados, para cada aluno: matrícula, sobrenome (apenas um) e ano do nascimento. 2. Ao início do programa, o usuário deverá informar o número de alunos que serão armazenados. 3. O programa deverá alocar dinamicamente a quantidade necessária de memória paraarmazenar os registros dos alunos. 4. O programa deverá pedir ao usuário que entre com as informações dos alunos. 5. Ao final, mostrar os dados armazenados e liberar a memória alocada.*/ #include <stdio.h> #include <stdlib.h> typedef struct{ int matricula; char nome[50]; int nasc; }tpaluno; int main(){ int x, i; tpaluno *aluno; printf("Digite a quantidade de registros de alunos: "); scanf("%d", &x); aluno = (tpaluno*)malloc(x * sizeof(tpaluno)); for(i=0;i<x;i++){ fflush(stdin); printf("\nSobrenome: "); scanf("%100[^\n]", aluno[i].nome); printf("Numero de matricula: "); scanf("%d", &aluno[i].matricula); printf("Ano de nascimento: "); scanf("%d", &aluno[i].nasc); } printf("\nMatriculas: "); for(i=0;i<x;i++){ printf("\nNumero de matricula %d \n", aluno[i].matricula); printf("Sobrenome: %s \n" , aluno[i].nome); printf("Ano de nascimento: %d\n" , aluno[i].nasc); } free(aluno); return 0; }