segunda-feira, 30 de setembro de 2013

Exemplos de programas em C Parte_4

Programa que receba os elementos de uma matriz e imprime a soma de todos os seus elementos.


#include <stdio.h>
#include <stdlib.h>

int main(void){

    /*
     * Faça um programa que receba os elementos de uma matriz e
     * imprima a soma de todos os seus elementos.
     */

    int i, j, soma = 0;
    int matriz[2][2];

    for (i = 0; i < 2; ++i) {
        for (j = 0; j < 2; ++j) {
            printf("\nDigite o elemento [%d][%d] da matriz: ", i, j);
            fflush(stdout);
            scanf("%d",&matriz[i][j]);
            soma += matriz[i][j];
        }
    }

    printf("\nA soma dos elementos da matriz é: %d", soma);

    system("pause");
    return 0;
}

---------------------------------------------------------------------------------------------------

Faça um programa que receba os elementos de uma matriz 4x4. Depois receba um valor do mesmo tipo dos elementos da matriz. Verifique e imprima quantas vezes esse valor existe na matriz. Se não encontrar imprima “não existe”.


#include <stdio.h>
#include <stdlib.h>

int main(void){

    /*
     * Faça um programa que receba os elementos de uma matriz 4x4. Depois
     * receba um valor do mesmo tipo dos elementos da matriz. Verifique e
     * imprima quantas vezes esse valor existe na matriz. Se não encontrar
     * imprima “não existe”.
     */

    int i, j, valor, cont = 0;
    int matriz[4][4];

    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++) {
            printf("\nDigite o elemento [%d][%d] da matriz: ", i, j);
            fflush(stdout);
            scanf("%d",&matriz[i][j]);
        }
    }

    printf("\nDigite o valor que deseja encontrar na matriz: ");
    fflush(stdout);
    scanf("%d", &valor);

    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j)
            if (matriz[i][j] == valor) {
                cont++;
        }
    }

    //se cont for maior que zero é porque existe um numero na matriz igual ao procurado,
    //se caso o numero procurado não existir na matriz 'cont' não será incrementado, ou seja,
    //ele será igual a zero e exiirá a segunda mensagem abixo;
    if(cont > 0) {
    printf("\nO valor [ %d ] foi encontrado [ %d ] vez(es) na matriz.", valor, cont);
    } else {
        printf("\nNão existe valor na matriz igual ao valor pesquisado!");
    }

    system("pause");
    return 0;
}

--------------------------------------------------------------------------------------------------- 

Faça um programa que receba os elementos de uma matriz. Exiba a matriz e sua transposta. Na matriz transposta trocam-se linhas por colunas e colunas por linhas da matriz original.


#include <stdio.h>
#include <stdlib.h>

#define limite 10 // constante de tamanho 10

int main(void){

    /*
     * Faça um programa que receba os elementos de uma matriz.
     * Exiba a matriz e sua transposta. Na matriz transposta
     * trocam-se linhas por colunas e colunas por linhas da
     * matriz original.
     */

    int i, j, linhas, colunas;
    int matriz[limite][limite];//a matriz terá um limite de 10 X 10

    printf("\nDigite o numero de linhas da matriz: ");
    fflush(stdout);
    scanf("%d",&linhas);

    printf("\nDigite o numero de colunas da matriz: ");
    fflush(stdout);
    scanf("%d",&colunas);

    for (i = 0; i < linhas; i++) {
        for (j = 0; j < colunas; j++) {
            printf("\nDigite o elemento [%d][%d] da matriz: ", i, j);
            fflush(stdout);
            scanf("%d",&matriz[i][j]);
        }
    }

    //matriz original
    printf("\nMatriz %d X %d Original.\n", linhas, colunas);
    for (i = 0; i < linhas; ++i) {
        for (j = 0; j < colunas; ++j) {
            printf("%2d ",matriz[i][j]);
        }
        printf("\n");
    }

    //matriz transposta
    printf("\nMatriz %d X %d Transposta.\n", colunas, linhas);
    for (i = 0; i < colunas; ++i) {
        for (j = 0; j < linhas; ++j) {
            printf("%2d ",matriz[j][i]);
        }
        printf("\n");
    }

    system("pause");
    return 0;
}
 

---------------------------------------------------------------------------------------------------

Faça um programa que receba uma matriz 4x4 e uma constante e imprima a matriz resultante da multiplicação da matriz pela constante.


#include <stdio.h>
#include <stdlib.h>

int main(void){

    //Faça um programa que receba uma matriz 4x4 e uma constante e imprima
    //a matriz resultante da multiplicação da matriz pela constante.

    int matriz[4][4], mat_resultante[4][4];
    int i, j, constante;

    //ler os números
    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j){
        printf("\nDigite o elemtento [%d][%d]:",i,j);
         fflush(stdout);
        scanf("%d",&matriz[i][j]);
        }
    }

    // recebe o valor da constante
    printf("\nDigite o valor da constante: ");
    fflush(stdout);
    scanf("%d",&constante);

    //exibe a matriz
    printf("\nMatriz 4 X 4: \n");
    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j) {
            printf(" %3d ",matriz[i][j]);
        }
        printf("\n");
    }

    //Multiplca os elementos da matriz pela constante
    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j) {
            mat_resultante[i][j] = matriz[i][j] * constante;
        }
    }

    //Exibe a matriz 4x4 multiplicada pela constante
    printf("\nResultado da matriz A x %d da constante: \n",constante);
    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j){
            printf(" %3d ", mat_resultante[i][j]);
        }
        printf("\n");
    }

    system("pause");
    return 0;
}

--------------------------------------------------------------------------------------------------- 

Programa que recebe duas matrizes 4x4 e imprime o resultado da soma das duas matrizes.


#include <stdio.h>
#include <stdlib.h>

int main(void){

    // Faça um programa que receba duas matrizes 4x4 e
    // imprima o resultado da soma das duas matrizes.

    int mat_A[4][4], mat_B[4][4], mat_Soma[4][4];
    int i, j;

    //ler os números da matriz A
    printf("Matriz A:");
    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j){
        printf("\nDigite o elemtento [%d][%d]:",i,j);
         fflush(stdout);
        scanf("%d",&mat_A[i][j]);
        }
    }

    printf("\n\n");

    //ler os números da matriz B
    printf("Matriz B:");
    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j) {
            printf("\nDigite o elemento [%d][%d]: ",i,j);
            fflush(stdout);
            scanf("%d",&mat_B[i][j]);
        }
    }

    // Soma a matriz A + B e armazena na matriz Soma
    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j) {
            mat_Soma[i][j] = mat_A[i][j] + mat_B[i][j];
        }
    }

    //Exibe a matriz A
    printf("\n\nMatriz A: \n\n");
    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j) {
            printf(" %2d ",mat_A[i][j]);
        }
        printf("\n");
    }

    //Exibe a matriz B
    printf("\n\nMatriz B: \n\n");
    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j) {
            printf(" %2d ",mat_B[i][j]);
        }
        printf("\n");
    }

    //Exibe a matriz soma de A+B
    printf("\n\nMatriz Soma ( A+B ): \n\n");
    for (i = 0; i < 4; ++i) {
        for (j = 0; j < 4; ++j) {
            printf(" %2d ",mat_Soma[i][j]);
        }
        printf("\n");
    }

    system("pause");
    return 0;
}
 

---------------------------------------------------------------------------------------------------

Faça um programa que receba 10 nomes em uma matriz de strings e outra string seq em separado. Imprima as palavras pertencentes à matriz que contenham a string seq recebida. Por exemplo, a string atestado contém a string testa, então deve ser impressa.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {

    // Faça um programa que receba 10 nomes em uma matriz de strings
    // e outra string seq em separado. Imprima as palavras pertencentes
    // à matriz que contenham a string seq recebida. Por exemplo, a string
    // atestado contém a string testa, então deve ser impressa.

    int i;
    char nomes[10][50], seq[50]; // recebe até 10 nomes com tamanho de 50 carcteres
    char *pos;

    for (i = 0; i < 10; ++i) {
        printf("\nDigite o %d nome: ", i+1);
        fflush(stdout);
        gets(nomes[i]);
    }

    printf("\nDigite as iniciais ou o nome que deseja encontrar: ");
    fflush(stdout);
    gets(seq);

    for (i = 0; i < 10; ++i) {
        pos = strstr(nomes[i], seq);
        if (pos != NULL) {
            printf("\n[ %s ] contém [ %s ].", nomes[i], seq);
        }
    }

    system("pause");
    return 0;
}

---------------------------------------------------------------------------------------------------    

Programa que recebe 10 nomes em uma matriz de strings e os imprima em ordem alfabética.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void){

    // Programa que recebe 10 nomes em uma matriz
    // de strings e os imprima em ordem alfabética.
   
    char matriz[10][40], aux[40];
    int i, j;

    for (i = 0; i < 10; ++i) {
        printf("\nDigite a %d string: ", i+1);
         fflush(stdout);
        fgets(matriz[i],39,stdin);
    }

    for (j = 1; j < 10; ++j) {
        strcpy(aux,matriz[j]); // coloca os elemtentos da metriz no vetor aux
        i = j-1;

        while(i >= 0 && strcmp(matriz[i],aux) > 0){
            strcpy(matriz[i+1],matriz[i]);
            i--;
        }
        strcpy(matriz[i+1],aux);
    }

    printf("\nMatriz de string em ordem: ");
    for (i = 0; i < 10; ++i) {
        printf("\n %s ",matriz[i]);
    }

    system("pause");
    return 0;
}

---------------------------------------------------------------------------------------------------    

# Compartilhar :