Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Receber um valor que representa a quantidade de inteiros positivos que o
- * usuário final precisa digitar. Depois, recerber essa quantidade de valores
- * inteiros do usuário.
- * Desconsiderar os valores repetidos digitados pelo usuário.
- * Não utilizar vetores.
- * Exibir a somatória dos valores pares e a somatória dos valores ímpares.
- *
- * Diego Mendes Rodrigues
- */
- #include <stdio.h>
- #include <stdlib.h>
- // Verificar se um número está dentre os valores armazenados na memória alocada
- int verificar_numero(int *valores, int posicao_atual, int valor) {
- if (posicao_atual > 0) {
- int *ptr_verificar;
- ptr_verificar = valores;
- for(int i=0;i<posicao_atual;i++) {
- if (*ptr_verificar == -1) {
- ptr_verificar -= i;
- return 1;
- }
- else if (*ptr_verificar == valor) {
- ptr_verificar -= i;
- return 0;
- }
- else {
- ptr_verificar++;
- }
- }
- }
- return 1;
- }
- // FUnção principal do sistema
- int main(void) {
- int qtd=0;
- int *valores;
- int *ptr;
- printf("Quantidade de inteiros: ");
- scanf("%d", &qtd);
- if (qtd < 1) {
- printf("A Quantidade deve ser maior do que zero\n");
- return 1;
- }
- // Os valores digitados pelo usuário ficarão em uma memória alocada
- // dinamicamente para armazenar inteiros
- valores = (int*)malloc(sizeof(int)*qtd);
- if (valores == NULL)
- {
- printf("Memória insuficiente!\n");
- return 1;
- }
- ptr = valores;
- // Colocar o valor -1 em todas as posições da memória alocada
- for(int i=0;i<qtd;i++) {
- *ptr = -1;
- ptr++;
- }
- ptr -= qtd;
- // Valores dos somatórios
- int somapar = 0, somaimpar = 0, valor = 0;
- for(int i=0;i<qtd;i++) {
- printf("Digite o %dº valor inteiro positivo: ", i+1);
- scanf("%d", &valor);
- if (valor < 0){
- printf("Todos os inteiros devem ser positivos!\n");
- return 1;
- }
- *ptr = valor;
- ptr++;
- // Somar o valor na vairável somapar ou somaimpar
- if (verificar_numero(valores, i, valor)) {
- if (valor % 2 == 0) {
- somapar += valor;
- }
- else {
- somaimpar += valor;
- }
- }
- }
- // Exibir os resultados
- printf("Soma dos inteiros positivos pares sem repetição = %d\n", somapar);
- printf("Soma dos inteiros positivos ímpares sem repetição = %d\n", somaimpar);
- return 0;
- }
Add Comment
Please, Sign In to add comment