Elabore um programa em c utilizando como entrada de dados o vetor a composto por 10 numeros inteiros.

o programa deverá usar um menu (switch) indicando a numeração dos problemas abaixo:
a- copie os valores do vetor a para o vetor b
b-multiplique o valor da variavel c pelos elementos do vetor e guardar os resultados no vetor b
c- mostrar na tela os conteudos dos endereços 7 e 9 do vetor a.
d-mostre na tela a posição (endereço de memoria) do vetor a referente ao numero (conteudo) 50. caso o numero nao exista, mostrar uma msg na tela.
e-calcule o produto escalar de a por b, onde pg=a1*b1+a2*b2+*b10
f-colocar na variavel maior, o maior elemento de a e na variavel posiçâo, o seu endereço de memoria
g-mostre na tela o vetor a e a ordem inversa dos seus elementos.

1 Resposta

  • Flavio

    #include
    #include

    const int tam=10;
    int Pg=0;
    int Maior=0;
    int* Posicao=0; 

    int preencher(int a[], int num);
    int menu(int a[], int b[]);
    int opcoes();
    int copyAtoB(int a[], int b[], int num);
    int mult(int a[], int b[], int mtpl, int num);
    int mostrA(int a[], int pos1, int pos2);
    int* endnum50(int a[], int numend, int num);
    int calprodesc(int a[], int b[], int num, int pg);
    int maiorpos(int a[], int* pos, int maior, int num);
    int exibirinvA(int a[], int num);

    int main(){
    int vetA[tam], vetB[tam];
    preencher(vetA, 0);
    printf("");
    menu(vetA, vetB);printf("nn");
    system("pause");
    return 0; }

    int preencher(int a[], int num){
    if(numprintf("Insira um numero inteiro para A[%d]: ", num);
    scanf("%d", &a[num]);
    return preencher(a, num+1); }

    return 0; }

    int menu(int a[], int b[]){
    char op;
    fflush(stdin); //_fpurge(stdin) se o sistema for linux
    opcoes();
    printf("Insira a letra corresponde a opcao: ");
    scanf("%c", &op);
    fflush(stdin); //_fpurge(stdin) se o sistema for linux
    switch(op){
    case 'a':{ copyAtoB(a, b, 0);
    return menu(a, b); }

    case 'b':{
    int multp=0;
    printf("n");
    printf("Insira o multiplicador: ");
    scanf("%d", &multp);
    mult(a, b, multp, 0);
    return menu(a, b); }

    case 'c':{
    mostrA(a, 7, 9);
    return menu(a, b); }

    case 'd':{
    printf("O endereco do numero 50 eh: %d", endnum50(a, 50, 0));
    return menu(a, b); }

    case 'e':{
    Pg=calprodesc(a, b, 0, 0);
    printf("Pg = %d", Pg);
    return menu(a, b); }

    case 'f':{
    maiorpos(a, &a[0], a[0], 0);
    return menu(a, b); }

    case 'g':{
    printf("{ ");
    exibirinvA(a, tam-1);
    return menu(a, b); }

    case 's':{ return 0; } }//fim do switch

    printf("Opcao invalida!n");
    return menu(a, b); }

    int opcoes(){
    printf("nna - Copiar os elemntos do vetor A para o vetor Bn");
    printf("b - Multiplicar os elemntos do vetor A e armazena-los no vetor Bn");
    printf("c - Exibir os elementos na posicao 7 e 9 no vetor An");
    printf("d - Exibir o endereco do numero 50 no vetor An");
    printf("e - Calcular o produto escalar dos vetores A e Bn");
    printf("f - Armazenar o maior numero e seu enderecon");
    printf("g - Exibir o vetor A inversamenten");
    printf("s - Sairn");
    return 0; }

    int copyAtoB(int a[], int b[], int num){
    if(numb[num]=a[num];
    return copyAtoB(a, b, num+1);  }

    return 0; }

    int mult(int a[], int b[], int mtpl, int num){
    if(numb[num]=a[num]*mtpl;
    return mult(a, b, mtpl, num+1); }

    return 0; }

    int mostrA(int a[], int pos1, int pos2){
    printf("A%d = %d, A%d = %d", pos1, a[pos1], pos2, a[pos2]);
    return 0; }

    int* endnum50(int a[], int numend, int num){
    if(numif(a[num]==numend) return &a[num];
    else return endnum50(a, numend, num+1); }

    printf("Numero inexistente. ");
    return NULL; }

    int calprodesc(int a[], int b[], int num, int pg ){
    if(numpg+=a[num]*b[num];
    return calprodesc(a, b, num+1, pg); }

    return pg; }

    int maiorpos(int a[], int* pos, int maior, int num){
    if(numif(maiorreturn maiorpos(a, &a[num], a[num], num+1); }
    else return maiorpos(a, pos, maior, num+1); }

    Maior=maior;
    Posicao=pos;
    return 0; }

    int exibirinvA(int a[], int num){
    if(num>=0){
    printf("%d", a[num]);
    if(num>=1) printf(", ");
    return exibirinvA(a, num-1); }

    printf("}");
    return 0; }

Clique aqui para adicionar a sua resposta.