├── a.exe ├── ex1.c ├── ex2.c ├── ex3.c ├── ex4.c └── readme.md /a.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erik-monteiro/c-exercicios/HEAD/a.exe -------------------------------------------------------------------------------- /ex1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #define SIZE 5 3 | 4 | int findValue(int*, int); 5 | 6 | int findValue(int* array, int search) { 7 | for (int i = 0; i < 5; i++) { 8 | if (*(array + i) == search) { 9 | return i; 10 | } 11 | } 12 | 13 | return -1; 14 | } 15 | 16 | int main() { 17 | int array[SIZE] = { 20, 30, 40, 100, 300 }; 18 | printf("%d", findValue(array, 30)); 19 | return 0; 20 | } 21 | -------------------------------------------------------------------------------- /ex2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #define SIZE 5 3 | 4 | int main() { 5 | int array1[SIZE] = { 20, 30, 40, 100, 300 }; 6 | int array2[SIZE] = { 1, 2, 3, 4, 5 }; 7 | 8 | copy(array1, array2, 5); 9 | for (int i = 0; i < SIZE; i++) { 10 | printf("%d ", array2[i]); 11 | } 12 | return 0; 13 | } 14 | 15 | void copy(int* a1, int* a2, int size) { 16 | for (int i = 0; i < size; i++) { 17 | *(a2 + i) = *(a1 + i); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ex3.c: -------------------------------------------------------------------------------- 1 | #include 2 | #define SIZE 5 3 | 4 | void invert(int*, int); 5 | 6 | void invert(int *a, int size) { 7 | for (int i = 0; i < size / 2; i++) { 8 | int temp = *(a + i); 9 | *(a + i) = *(a + size - i - 1); 10 | *(a + size - i - 1) = temp; 11 | } 12 | } 13 | 14 | int main() { 15 | int array[SIZE] = { 20, 30, 40, 100, 300, 500 }; 16 | 17 | invert(array, 5); 18 | for (int i = 0; i < SIZE; i++) { 19 | printf("%d ", array[i]); 20 | } 21 | return 0; 22 | } 23 | 24 | -------------------------------------------------------------------------------- /ex4.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void bubblesort(int*, int); 4 | 5 | int main() { 6 | int array[6] = { 20, 10, 23, 100, 40, 500 }; 7 | 8 | bubblesort(array, 6); 9 | for (int i = 0; i < 6; i++) { 10 | printf("%d ", array[i]); 11 | } 12 | } 13 | 14 | void bubblesort(int* v, int size) { 15 | for (int i = 0; i < size; i++) { 16 | for (int j = i + 1; j < size; j++) { 17 | if (*(v + i) > *(v + j)) { 18 | int aux = *(v + i); 19 | *(v + i) = *(v + j); 20 | *(v + j) = aux; 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | Para cada um dos exercícios abaixo, escreva a função solicitada e um trecho no programa principal para testá-la. Dentro das funções, não use o operador de índice [] do vetor, navegue pelos vetores usando apenas aritmética de ponteiros. 2 | 3 | 1. Escreva uma função que receba um vetor de inteiros, o tamanho do vetor e um valor a ser procurado. A função deve procurar o valor no vetor, caso encontre deve retornar a posição (índice) no vetor. Caso não encontre, deve retornar -1. 4 | 5 | 2. Escreva uma função que receba dois vetores de inteiros de mesmo tamanho, e o tamanho de um deles. A função deverá copiar os elementos do primeiro vetor para o segundo. 6 | 7 | 3. Escreva uma função que receba um vetor de inteiros e o tamanho do vetor. A função deverá inverter a ordem dos elementos do vetor. 8 | 9 | 4. Escreva uma função que receba um vetor de inteiros e o tamanho do vetor. A função deverá ordenar os elementos (implemente, por exemplo, bubble sort). --------------------------------------------------------------------------------