Вы находитесь на странице: 1из 3

/* Exerccio 1 * * 1. Crie uma funo que calcule os k primeiros termos do somatrio: * 100 n 99.(n-1) 98.

(n-2) * --------- + --------- + --------- + ... * 3 . n 9 . n 27 . n * * onde k e n sero os parmetros e S o retorno da funo. Defina adequadamente o tipo de retorno da funo. */ #include <stdio.h> double ex1 (int k, int n) { double s = 0; //somatorio int i; double parcela; for (i=0 ; i<k ; i++) { parcela = ( (100-i) * (n - i) ) / ( pow(3,i+1) * pow (n,i+1) ); s = s + parcela; } return (s); } //apenas para teste da funo int main() { int k, n; puts("Digite os valores de k e n :"); scanf("%d%d", &k, &n); printf("O somatrio %g", ex1(k,n)); return (0); }

/* Exerccio 2 * * 2. Faa uma funo que seja capaz de alocar dinamicamente uma matriz de caracteres de tamanho Lin x Col (parmetros da funo), preenchendo-a primeiramente com '.' (pontos). * Em seguida, a funo deve colocar na mesma matriz criada um total de n caracteres iguais a carac (caracter a ser inserido, por exemplo, '#'), ambos tambm parmetros. * Note que os caracteres carac no devem ser colocados sobre lugares repetidos. * A funo retorna a matriz preenchida como parmetro. * Por exemplo, uma chamada como func(10, 10, 23, '$') deve retornar uma matriz de caracteres de 10 x 10 cheia de '.' exceto onde contm 23 caracteres '$' distribudos aleatoriamente */ #include <stdio.h> #include <stdlib.h> char** f(int Lin, int Col, int qtd, char carac) { int i,c; char **mat = malloc (Lin * sizeof (char *)); //um array de ponteiros for (i=0; i<Lin; i++) { mat[i] = malloc (Col * sizeof (char)); //uma linha de cada vez } for (i=0; i<Lin; i++) for (c=0; c<Col; c++) mat[i][c] = '.';

srand(time(NULL)); while (qtd > 0) { int sl, sc; sl = rand()%Lin; sc = rand()%Col; //escolhe linha e coluna aleatoriamente if (mat[sl][sc] != carac) //se j tiver colocado, escolhe outra posio { mat[sl][sc] = carac; qtd--; } } return mat; } int main() { int L, C, i, c, qtd; char carac; puts("Tamanho? (digite L e C): "); scanf("%d%d", &L, &C); puts("Qtd e carac: "); scanf("%d\n%c", &qtd, &carac); //consome o "enter" deixado no buffer de teclado printf("Caracter digitado: %c \n", carac); char **mat = f(L,C,qtd,carac); //aloca a matriz //verificando a matriz printf("Matriz criada:\n"); for (i=0; i<L; i++) { for (c=0; c<C; c++) printf("%c ", mat[i][c]); //imprime uma linha printf("\n"); //proxima linha } //liberando a memoria for (i=0; i<L; i++) { free(mat[i]); } free(mat); return (0); } /* Exerccio 3 * * 3. Considere o problema de, dado um vetor inteiro V de tamanho n passados como parmetro para uma funo, fazer com que ela retorne o ndice do maior valor deste vetor. Ateno, retorne o ndice e no o valor. * Por exemplo, sendo V = {1,4,2,3,1,2}, a funo deve retornar o ndice {1}, ou seja, a posio do maior elemento. */ #include <stdio.h> int maximo_vet (int v[], int n); int main() { int v[5] = {1,4,2,3,1,2}; int i; for (i=0; i<5; i++) printf("%d ", v[i]);

printf("\nndice do valor mximo: %d", maximo_vet (v,5)); return (0); } int maximo_vet (int v[], int n) { int i_max = 0; //indice do maior valor int i; for (i=1; i<n; i++) { if(v[i_max] < v[i]) i_max = i; //troca o ndice } return(i_max); }

Вам также может понравиться