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+....A10*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.
Soluções para a tarefa
Respondido por
1
#include<stdio.h>
#include<stdlib.h>
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("\n\n");
system("pause");
return 0; }
int preencher(int a[], int num){
if(num<tam){
printf("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("\n\na - Copiar os elemntos do vetor A para o vetor B\n");
printf("b - Multiplicar os elemntos do vetor A e armazena-los no vetor B\n");
printf("c - Exibir os elementos na posicao 7 e 9 no vetor A\n");
printf("d - Exibir o endereco do numero 50 no vetor A\n");
printf("e - Calcular o produto escalar dos vetores A e B\n");
printf("f - Armazenar o maior numero e seu endereco\n");
printf("g - Exibir o vetor A inversamente\n");
printf("s - Sair\n");
return 0; }
int copyAtoB(int a[], int b[], int num){
if(num<tam){
b[num]=a[num];
return copyAtoB(a, b, num+1); }
return 0; }
int mult(int a[], int b[], int mtpl, int num){
if(num<tam){
b[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(num<tam){
if(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(num<tam){
pg+=a[num]*b[num];
return calprodesc(a, b, num+1, pg); }
return pg; }
int maiorpos(int a[], int* pos, int maior, int num){
if(num<tam){
if(maior<a[num]){
return 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; }
#include<stdlib.h>
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("\n\n");
system("pause");
return 0; }
int preencher(int a[], int num){
if(num<tam){
printf("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("\n\na - Copiar os elemntos do vetor A para o vetor B\n");
printf("b - Multiplicar os elemntos do vetor A e armazena-los no vetor B\n");
printf("c - Exibir os elementos na posicao 7 e 9 no vetor A\n");
printf("d - Exibir o endereco do numero 50 no vetor A\n");
printf("e - Calcular o produto escalar dos vetores A e B\n");
printf("f - Armazenar o maior numero e seu endereco\n");
printf("g - Exibir o vetor A inversamente\n");
printf("s - Sair\n");
return 0; }
int copyAtoB(int a[], int b[], int num){
if(num<tam){
b[num]=a[num];
return copyAtoB(a, b, num+1); }
return 0; }
int mult(int a[], int b[], int mtpl, int num){
if(num<tam){
b[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(num<tam){
if(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(num<tam){
pg+=a[num]*b[num];
return calprodesc(a, b, num+1, pg); }
return pg; }
int maiorpos(int a[], int* pos, int maior, int num){
if(num<tam){
if(maior<a[num]){
return 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; }
LolaTheStrange:
você é divino <3
Perguntas interessantes
Geografia,
10 meses atrás
Matemática,
10 meses atrás
Física,
10 meses atrás
Sociologia,
1 ano atrás
Matemática,
1 ano atrás
Biologia,
1 ano atrás
Artes,
1 ano atrás