n > 0
números inteiros, imprimi-los na ordem
inversa a da leitura.
#include <stdio.h> #define LIM 500 int main(){ int n,i; int vet[LIM]; printf("Entre com n: "); scanf("%d", &n); printf("Entre com %d elementos: ",n); for(i = 0; i < n; i++){ scanf("%d", &vet[i]); } printf("Ordem inversa: "); for(i = n-1; i >= 0; i--){ printf("%d ",vet[i]); } printf("\n"); return 0; }
n > 0
números inteiros,
inverter a ordem dos seus elementos no vetor.
Solução 1:
Nessa primeira solução, utilizamos um vetor auxiliar tmp
para armazenar os dados invertidos e, somente depois,
copiamos os dados invertidos para o vetor original.
#include <stdio.h> #define LIM 500 int main(){ int n,i,j; int vet[LIM], tmp[LIM]; /*Leitura dos dados do vetor:*/ printf("Entre com n: "); scanf("%d", &n); printf("Entre com %d elementos: ",n); for(i = 0; i < n; i++) scanf("%d", &vet[i]); /*Invertendo os dados no vetor:*/ j = 0; for(i = n-1; i >= 0; i--){ tmp[j] = vet[i]; j++; } for(i = 0; i < n; i++) vet[i] = tmp[i]; /*Imprimindo o vetor invertido:*/ for(i = 0; i < n; i++) printf("%d ",vet[i]); printf("\n"); return 0; }
Solução 2:
Uma segunda solução mais econômica que utiliza uma única variável auxiliar, ao invés de um vetor auxiliar.
#include <stdio.h> #define LIM 500 int main(){ int n,i,j,tmp; int vet[LIM]; /*Leitura dos dados do vetor:*/ printf("Entre com n: "); scanf("%d", &n); printf("Entre com %d elementos: ",n); for(i = 0; i < n; i++) scanf("%d", &vet[i]); /*Invertendo os dados no vetor:*/ j = n-1; for(i = 0; i < n/2; i++){ tmp = vet[i]; vet[i] = vet[j]; vet[j] = tmp; j--; } /*Imprimindo o vetor invertido:*/ for(i = 0; i < n; i++) printf("%d ",vet[i]); printf("\n"); return 0; }
m > 0
e n > 0
elementos
respectivamente, e gera um terceiro vetor ordenado
contendo todos os elementos das duas sequências
originais sem repetição.
#include <stdio.h> #define LIM 500 int main(){ int m,n,i,j,k; int v1[LIM],v2[LIM],v3[LIM]; printf("Entre com m: "); scanf("%d", &m); printf("Entre com %d elementos: ", m); for(i = 0; i < m; i++){ scanf("%d", &v1[i]); } printf("Entre com n: "); scanf("%d", &n); printf("Entre com %d elementos: ", n); for(j = 0; j < n; j++){ scanf("%d", &v2[j]); } k = i = j = 0; while(i < m && j < n){ if(v1[i] < v2[j]){ v3[k] = v1[i]; k++; i++; } else if(v1[i] > v2[j]){ v3[k] = v2[j]; k++; j++; } else{ /* v1[i] == v2[j] */ v3[k] = v1[i]; k++; i++; j++; } } while(i < m){ v3[k] = v1[i]; k++; i++; } while(j < n){ v3[k] = v2[j]; k++; j++; } printf("Novo vetor: "); for(i = 0; i < k; i++){ printf("%d ",v3[i]); } printf("\n"); return 0; }
n > 0
lançamentos de uma roleta (números entre
0 e 36), calcular a frequência de cada número.
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int n,i,num; int frequencia[37]; srand(time(NULL)); for(i=0; i < 37; i++) frequencia[i] = 0; printf("Entre com n: "); scanf("%d", &n); for(i = 0; i < n; i++){ num = rand()%37; frequencia[num]++; } for(i = 0; i < 37; i++) printf("Frequencia %d = %d\n",i, frequencia[i]); return 0; }
n > 0
números reais, imprimi-los
eliminando as repetições.
Solução 1:
Nessa primeira solução, utilizamos um vetor auxiliar repetidos
.
#include <stdio.h> #define LIM 100 int main(){ float vet[LIM]; int repetidos[LIM]; int n, i, j; printf("Entre com n: "); scanf("%d", &n); printf("Entre com %d números reais: ",n); for(i = 0; i < n; i++){ scanf("%f", &vet[i]); repetidos[i] = 0; } for(i = 0; i < n; i++){ if(repetidos[i] == 0){ for(j = i+1; j < n; j++){ if(vet[i] == vet[j]) repetidos[j] = 1; } } } printf("Sem repetições: "); for(i = 0; i < n; i++){ if(repetidos[i] == 0) printf("%.2f ",vet[i]); } printf("\n"); return 0; }
Solução 2:
Uma segunda solução mais econômica que utiliza uma única variável auxiliar (indicador de passagem), ao invés de um vetor auxiliar.
#include <stdio.h> #define LIM 100 int main(){ float vet[LIM]; int n, i, j; int repetido; /* indicador de passagem */ printf("Entre com n: "); scanf("%d", &n); printf("Entre com %d números: ", n); for(i = 0; i < n; i++){ scanf("%f", &vet[i]); } printf("Sem repetições: "); for(i = 0; i < n; i++){ repetido = 0; for(j = i-1; j >= 0; j--){ if(vet[i] == vet[j]) repetido = 1; } if(repetido == 0) printf("%.2f ", vet[i]); } printf("\n"); return 0; }