Exercicios de Programação em C Resolvidos

Fazer download em doc, pdf ou txt
Fazer download em doc, pdf ou txt
Você está na página 1de 11

1. Fazer um programa para receber um nmero inteiro de segundos do usurio e imprimir a quantidade correspondente em horas, minutos e segundos.

int main(void) { int seg,min,hor; printf("Digite o tempo total em segundos: "); scanf("%i",&seg); hor = seg \ 3600; seg = seg % 3600; min = seg \ 60; seg = seg % 60; printf("total: %i:%i:%i\n",hor,min,seg); return 0; }

4. Fazer um programa para receber valores inteiros X, Y e Z do usurio e determinar se estes valores podem formar os lados de um tringulo. Em caso afirmativo, informar se o tringulo eqiltero, issceles ou escaleno. int main(void) { int x,y,z,tmp; printf("Informe 3 medidas de um triangulo \n"); printf("x: "); scanf("%i",&x); printf("y: "); scanf("%i",&y); printf("z: "); scanf("%i",&z); if(x<(y+z)) { if(y>z) { tmp = y-z; } else { tmp = z-y; } if(tmp >= x) { printf("Estas medidas nao formam um triangulo!!"); return 0;

} } else { printf("Estas medidas nao formam um triangulo!!"); return 0; } if(x==y) { if(x==z) { printf("EQUILATERO"); } else { printf("ISOSCELES"); } } else { if(x==z) { printf("ISOSCELES"); return 0; } if(y==z) { printf("ISOSCELES"); return 0; } else { printf("ESCALENO"); return 0; } } return 0; }

5. Fazer um programa que recebe 3 valores no inteiros do usurio e mostra o maior deles, o menor deles e a mdia. int main(void) { float vlr1, vlr2, vlr3, media, tmp;

printf("digite 3 valores!\n"); printf("Valor 1: "); scanf("%f",&vlr1); printf("Valor 2: "); scanf("%f",&vlr2); printf("Valor 3: "); scanf("%f",&vlr3); media = (vlr1+vlr2+vlr3)/3; if(vlr1>vlr2) { tmp = vlr1; vlr1 = vlr2; vlr2 = tmp; } if(vlr2>vlr3) { tmp = vlr2; vlr2 = vlr3; vlr3 = tmp; } if(vlr1>vlr2) { tmp = vlr1; vlr1 = vlr2; vlr2 = tmp; } printf("Maior valor: %f - Menor valor: %f - Media: %f",vlr3,vlr1,media); return 0; }

7. O nmero 3025 possui a seguinte caracterstica: 30 + 25 = 55 -> 55*55 = 3025. Fazer um programa para obter todos os nmeros de 4 algarismos com a mesma caracterstica do nmero 3025. int main(void) { int tmp1,cnt; printf("numeros com a caracteristica: aabb -> aa+bb = cc -> cc*cc = aabb\n"); cnt=0; while(cnt<10000) { tmp1 = (cnt/100)+(cnt%100); tmp1 = tmp1 * tmp1; if(tmp1==cnt) {

printf("%i ",cnt); } cnt=cnt+1; } return 0; }

10. Fazer um programa para receber um nmero inteiro do usurio e determinar se este nmero primo ou no. int main(void) { int vlr,cnt; printf("Digite um valor para ver se e primo: "); scanf("%i",&vlr); cnt = 2; while(cnt<vlr) { if((vlr%cnt)==0) { cnt=vlr+1; } cnt=cnt+1; } if(vlr==cnt) { printf("O numero %i eh primo!!",vlr); } else { printf("O numero %i nao eh primo!!",vlr); } return 0; } 11. Fazer um programa para receber um nmero do usurio e decomp-lo em fatores primos. int main(void) { int vlr,cntPrm,tmp,sair; printf("Diginte um valor para ser decomposto em FATORES PRIMOS: "); scanf("%i",&vlr); tmp = vlr;

cntPrm = 2; while(vlr!=1) { if((vlr%cntPrm)==0) { if(vlr!=cntPrm) { vlr = vlr/cntPrm; printf("%i * ",cntPrm); } else { printf("%i = %i",cntPrm,tmp); return 0; } } else { cntPrm= cntPrm+1; sair = 2; while(sair<cntPrm) { if((cntPrm%sair)==0) { cntPrm= cntPrm+1; } else { sair=sair+1; } if(cntPrm==vlr) { sair = cntPrm; } } } } return 0; }

12. Fazer um programa para receber dois nmeros do usurio e calcular o seu MDC utilizando o mtodo de Euclides. O programa deve continuar pedindo dois nmeros at que 0 e 0 sejam fornecidos.

int main(void) { int vlr1,vlr2,sair; sair=0; while(sair==0) { printf("Digite dois valores para calular o MDC entre eles!!\n"); printf("para sair, digite zero nos dois valores!!\n\n"); printf("Valor 1: "); scanf("%i",&vlr1); printf("Valor 2: "); scanf("%i",&vlr2); if(vlr1==0) { if(vlr2==0) { return 0; } else { printf("Nao e possivel calcular MDC com um dos valores igual a zero!!\n"); sair=1; } } else { if(vlr2==0) { printf("Nao e possivel calcular MDC com um dos valores igual a zero!!\n"); sair=1; } } while(sair==0) { if(vlr1>vlr2) { vlr1 = vlr1-vlr2; if(vlr1 <= 0) { sair = 1; printf("MDC ...: %i\n\n",vlr2); } } else { vlr2 = vlr2-vlr1;

if(vlr2 <= 0) { sair = 1; printf("MDC ...: %i\n\n",vlr1); } } } sair=0; } return 0; }

25. Escrever um programa para ler um nmero inteiro do usurio e exibir o maior nmero primo que seja menor do que o nmero digitado. int main(void) { int vlr,prm,cnt; printf("Digite um valor para checar o maior numero primo ate o numero digitado: "); scanf("%i",&vlr); cnt = vlr; while(cnt>1) { cnt=cnt-1; while(cnt>1) { if((vlr%cnt)==0) { vlr=vlr-1; cnt = vlr - 1; } else { cnt=cnt-1; } } } printf("O maior numero primo neste intervalo e: %i",vlr); return 0; }

45. Faa um programa que dado o vetor unidimensional [2; 4; 35; 50; 23; 17; 9; 12; 27; 5] retorne: a. maior valor b. mdia dos valores c. os valores dispostos em ordem crescente d. sub conjunto de valores primos que est contido no vetor int main(void) { int vet[10],cnt,maior,media,seq,pos,tmp; vet[0] = 2; vet[1] = 4; vet[2] = 35; vet[3] = 50; vet[4] = 23; vet[5] = 17; vet[6] = 9; vet[7] = 12; vet[8] = 27; vet[9] = 5; cnt=0; maior=0; media=0; while(cnt<10) { if(maior<vet[cnt]) { maior = vet[cnt]; } media = media + vet[cnt]; cnt=cnt+1; } media = media/cnt; seq = maior; cnt = 0; pos = 9; while(pos>0) { if(vet[cnt]==seq) { tmp = vet[pos]; vet[pos] = vet[cnt]; vet[cnt] = tmp; pos=pos-1; cnt = 0; seq=seq-1;

} else { cnt=cnt+1; } if(cnt==10) { seq=seq-1; cnt = 0; } } printf("O maior valor eh: %i\n",maior); printf("A media eh......: %i\n",media); cnt = 0; while(cnt<10) { if(cnt<9) { printf("%i, ",vet[cnt]); } else { printf("%i",vet[cnt]); } cnt=cnt+1; } return 0; }

46. Faa um programa que: a. leia 7 valores inteiros e os armazene em um vetor. Listar o vetor com as referidas posies de armazenamento de cada valor. b. oferea uma funo de pesquisa onde dado um valor inteiro qualquer de entrada retornar a posio deste valor dentro do vetor, e caso este valor no esteja presente no vetor retornar 1. c. oferea uma funo que troque os valores contido no vetor pela seguinte poltica: cada elemento i dentro do vetor ser substitudo pela soma de todos os (i-1) elementos mais o elemento i. Por exemplo, dado um vetor [1; 2; 3; 4; 5] aps a aplicao da funo teramos esse vetor preenchido com os seguintes valores [1; 3; 6; 10; 15]. Para esta tarefa utilize um vetor auxiliar. int main(void) { int vet[7],aux[7],cnt,tmp,tmp2;

printf("digite 7 valores a serem armazenados!\n"); cnt=0; while(cnt<=6) { printf("Valor: "); scanf("%i",&vet[cnt]); cnt=cnt+1; } cnt=0; while(cnt<=6) { printf("Valor na posicao %i do vetor: %i\n",cnt,vet[cnt]); cnt=cnt+1; } printf("Digitar um valor para verificar se estah armazenado no vetor: "); scanf("%i",&tmp); tmp2=0; cnt=0; while(cnt<=6) { if(vet[cnt]==tmp) { printf("Este valor se encontra posicao %i do vetor!!\n",cnt); tmp2=tmp2+1; } if(cnt==6) { if(tmp2==0) { printf("Nao existe este valor no vetor!! -1 \n"); } } cnt=cnt+1; } tmp=0; cnt=0; while(cnt<=6) { tmp=tmp+vet[cnt]; aux[cnt]=tmp; cnt=cnt+1; } printf("Apos aplicar as regras de substituicao,\nos valores dos vetores passam a ser os seguintes:\n\n"); cnt=0; while(cnt<=6) {

printf("Valor na posicao %i do vetor: %i\n",cnt,aux[cnt]); cnt=cnt+1; } return 0; }

Você também pode gostar