Baixe o app para aproveitar ainda mais
Prévia do material em texto
QUESTÕES ERRADAS : 5 , 7 1.1. Impressão de um número natural em base binária. #include<stdio.h> #include<stdlib.h> #include<math.h> int basebinaria(int n); int produtoincr(int n){ int base=0,i=0; while(n>0){ base=base+pow(10,i)*(n%2); i=i+1; n=n/2; } return base; } int main(){ int n,b; scanf("%d",&n); b=produtoincr(n); printf("%d",b); return 0; } 1.2.Multiplicação de dois números naturais, através de somas sucessivas (Ex.: 6 ∗ 4 = 4 + 4 + 4 + 4 + 4 + 4). #include<stdio.h> int s (int a, int b) { int soma; for(int i=0;i<a;i++){ soma=soma+b; } return(soma); } int main (void) { int x,z,soma=0; scanf("%d %d",&x,&z); soma=s(x, z); printf("%d",soma); } 1.3. Soma de dois números naturais, através de incrementos sucessivos. #include <stdio.h> #include <stdlib.h> int soma(int n,int m) { int s=n; for(int i=0;i<m;i++) s=s+1; return s; } int main(){ int n,m,s; scanf("%d",&n); scanf("%d",&m); s=soma(n,m); printf("%d",s); return 0; } 1.4. Multiplicação de dois números naturais, através de incrementos sucessivos. #include<stdio.h> #include<stdlib.h> int soma1(int m) { int s=0; for(int i=0;i<m;i++) s=s+1; return s; } int produtoincr (int n, int m){ int s=0; for (int i=0;i<n;i++) s=s+soma1(m); return s; } int main () { int n,m,s; scanf("%d",&n); scanf("%d",&m); s=produtoincr(n,m); printf("%d",s); return 0; } 1.5.Implemente uma função recursiva que, dados dois números inteiros x e n, calcula o valor de x * n. #include<stdio.h> int potrecursivo (int x,int n){ if(n==0) return 1; else return x*n; } int main (int argc,char*argv[]){ int val1,val2,resultado; printf("Digite o valor da base: \n"); scanf("%d",&val1); printf("Digite o valor da potencia: \n"); scanf("%d",&val2); resultado=potrecursivo(val1,val2); printf("O resultado de %d\n",resultado); } 1.6. Dado um número n, gere todas as possíveis combinações com as n primeiras letras do alfabeto. Ex.: n = 3. Resposta: ABC, ACB, BAC, BCA, CAB, CBA. #include<stdio.h> #include<math.h> int fatorial(int n) { int i,fat; fat=n; if (n > 0) { fat = fat*fatorial(n-1); return fat; } else { fat = 1; return fat; } } void gera_combinacoes(int c,int l,int n, char comb[][26],char subset[]) { int i, j, k, w, nrep; char new_subset[n-1]; if (n > 1) { nrep = fatorial(n)/n; for (i=0;i<n;i++) { for (j=0;j<nrep;j++) { comb[l][c] = subset[i]; l += 1; } w = 0; for (k=0;k<n;k++) { if (subset[k] != subset[i]) { new_subset[w] = subset[k]; w++; } } gera_combinacoes(c+1,l-j,n-1,comb,new_subset); } } else { comb[l][c]=subset[0]; } } int main() { int n,ncomb,c,l,i,j; char alpha[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; printf("\nDigite o valor de n (n primeiras letras): "); scanf("%d",&n); char subset[n]; for (i=0;i<n;i++) { subset[i] = alpha[i]; } ncomb = fatorial(n); char comb[ncomb][26]; c = 0; l = 0; gera_combinacoes(c,l,n,comb,subset); printf("\n"); for (i=0;i<ncomb;i++) { for (j=0;j<n;j++) { printf("%c ",comb[i][j]); } printf("\n"); } } 1.7. Gere todas as possíveis combinações para um jogo da MegaSena com 6 dezenas. #include<stdio.h> #include<stdlib.h> void gera_combinacoes(int a, int b, int c, int d, int e, int f, int cont) { cont=0; for(a=1;a<=60;a++) { for(b=1;b<=60;b++) { for(c=1;c<=60;c++) { for(d=1;d<=60;d++) { for(e=1;e<=60;e++) { for(f=1;f<=60;f++) { if((a<b && b<c) && (c<d && d<e) && e<f) { cont++; printf("\n%d. [%d %d %d %d %d %d]",cont,a,b,c,d,e,f); } } } } } } } } int main(void) { int a, b, c, d, e, f, cont; gera_combinacoes(a, b, c, d, e, f, cont); } 1.8. Gere o termo de ordem n da série de Fibonacci. #include<stdio.h> #include<stdlib.h> int fib(int n){ if (n==1 || n==2) return n-1; return (fib(n-1)+fib(n-2)); } int main(){ int n, res; scanf ("%d",&n); res = fib(n+1); printf ("%d",res); } 1.9. Gere a série de Fibonacci até o termo de ordem n. #include<stdio.h> #include<stdlib.h> int fib(int n){ if(n==1 || n==2) return n-1; return (fib(n-1)+fib(n-2)); } int main(){ int n, res, i; scanf ("%d",&n); for (i=1;i<=n;i++) { res = fib(i+1); printf ("%d ",res); } } 1.10. Calcule o somatório dos n primeiros números inteiros. #include<stdio.h> int main () { int n,h; int funcao(int N); printf("Digite o valor de N:"); scanf("%d",&n); h=funcao(n); printf("%d",h); return 0; } int funcao(int N) { int i,soma=0; for(i=0;i<N;i++) { soma=soma+i; } return soma; } 1.11. Calcule a soma de todos os valores de um array de reais. #include<stdio.h> int main () { int a,i; float h; float funcao(float vet[],int A); printf("Digite a quantidade de termos:"); scanf("%d",&a); float vetor[a]; for(i=0;i<a;i++) { printf("Termo:"); scanf("%f",&vetor[i]); } h=funcao(vetor,a); printf("%f",h); return 0; } float funcao(float vet[],int A) { float soma=0; int i; for(i=0;i<A;i++) { soma=soma+vet[i]; } return soma; } 1.12. Encontre o maior elemento de um array de inteiros. #include<stdio.h> int main () { int i,n,h; int funcao(int vetor[],int N); printf("Digite o total de termos:"); scanf("%d",&n); int vetor[n]; for(i=0;i<n;i++) { printf("Digite o termo:"); scanf("%d",&vetor[i]); } h=funcao(vetor,n); printf("Maior valor:%d",h); return 0; } int funcao(int vetor[],int N) { int i,maior; for(i=0;i<N;i++) { if(i==0 || maior<vetor[i]) { maior=vetor[i]; } } return maior; } 1.13. Inverta os elementos de um vetor. #include<stdio.h> #include<stdlib.h> void inverte_vetor (int v[], int s[], int x) { int i; int t; t = x - 1; for (i=0;i<x;i++) { s[i]=v[t-1]; t--; } } int main() { int v[100], i, n, x=0; for (i=0;i<100;i++) v[i] = 0; while (n != 0) { printf("Digite o %d elemento do vetor ou 0 pra parar: ", x+1); scanf("%d", &n); v[x] = n; x++; } printf("\n"); int s[x]; inverte_vetor (v, s, x); for (i=0;i<x;i++) { if (s[i]!=0) printf("%d ", s[i]); } } 1.14. Implemente uma solução para o problema das Torres de Hanói com 4 pinos. 1.15. Um palíndromo é uma palavra que é igual a si mesma lida de trás para frente. Escreva uma solução que determine se uma palavra é um palíndromo. #include <stdio.h> #include <string.h> int main() { char a[100]; int TAM,h; int funcao(char vetor[],int tamanho); printf("DIGITE A PALAVRA: "); scanf("%s",a); printf("Palavra digitada: %s",a); TAM=strlen(a); printf("\nTamanho: %d",TAM); h= funcao(a,TAM); if (h == 0) { printf("\nPALINDROME"); } else { printf("\nNAO E PALINDROME"); } return 0; } int funcao(char vetor[],int tamanho) { int I, J, ACHOU; J=tamanho-1; ACHOU=0; for (I=0;I<tamanho;I++) { if (vetor[I] != vetor[J]) ACHOU=1; J=J-1; } return ACHOU; }
Compartilhar