boa noite galeraaa! A questão é...preciso fazer uma função que utilizando aritmetica de ponteiro inverta os termos de um vetor. aqui vai o codigo que eu fiz, a funçao com problema ta com um comentario la...é a ordinv!
desde já muito obrigado!
#include <stdlib.h>
#include <stdio.h>
int maior (int *pv,int n){
int i,maio;
maio = *(pv+0);
for (i=0;i<n;i++){
if (*(pv+i)>maio) {
maio= *(pv+i);
}
}
return maio;
}
int menor (int *pv,int n) {
int i,meno;
meno = *(pv+0);
for (i=0;i<n;i++){
if (*(pv+i)<meno) {
meno = *(pv+i);
}
}
return meno;
}
float media (int *pv,int n) {
float s=0;
int i;
for (i=0;i<n;i++) {
s=s+*(pv+i);
}
return (s/n);
}
int numneg (int *pv,int n) {
int i,cont;
cont=0;
for (i=0;i<n;i++) {
if (*(pv+i)<0) {
cont=cont+1;
}
}
return cont;
}
//funçao com problema!!!!!
int ordinv(int *pv,int n){
int i,j,aux;
for (i=0,j=n-1;i<j;i++,j--) {
aux=*(pv+i);
*(pv+i)=*(pv+j);
*(pv+j)=aux;
}
return *(pv+i);
}
int main () {
int n,i, *pv;
printf("Digite a quantidade de termos do vetor\n");
scanf("%d", &n);
pv=(int *)malloc(n*sizeof(int));
if(!pv) {
printf("MEMORIA INSUFICIENTE");
exit(1);
}
for (i=0;i<n;i++) {
printf("Digite o termo v[%d]\n", i+1);
scanf("%d",pv+i);
}
printf("O valor do maior termo digitado e: %d",maior(pv,n));
printf("\n\n");
printf("O valor do menor termo digitado e: %d",menor(pv,n));
printf("\n\n");
printf("A media dos termos digitados e: %f", media(pv,n));
printf("\n\n");
printf("A quantidade de numeros negativos e: %d", numneg(pv,n));
printf("\n\n");
printf("O vetor invertido\n");
for (i=0;i<n;i++){
printf("%d\n",ordinv(pv,n));
}
system ("PAUSE");
return 0;
}
Pergunta
_AlcinhA_
boa noite galeraaa! A questão é...preciso fazer uma função que utilizando aritmetica de ponteiro inverta os termos de um vetor. aqui vai o codigo que eu fiz, a funçao com problema ta com um comentario la...é a ordinv!
desde já muito obrigado!
#include <stdlib.h> #include <stdio.h> int maior (int *pv,int n){ int i,maio; maio = *(pv+0); for (i=0;i<n;i++){ if (*(pv+i)>maio) { maio= *(pv+i); } } return maio; } int menor (int *pv,int n) { int i,meno; meno = *(pv+0); for (i=0;i<n;i++){ if (*(pv+i)<meno) { meno = *(pv+i); } } return meno; } float media (int *pv,int n) { float s=0; int i; for (i=0;i<n;i++) { s=s+*(pv+i); } return (s/n); } int numneg (int *pv,int n) { int i,cont; cont=0; for (i=0;i<n;i++) { if (*(pv+i)<0) { cont=cont+1; } } return cont; } //funçao com problema!!!!! int ordinv(int *pv,int n){ int i,j,aux; for (i=0,j=n-1;i<j;i++,j--) { aux=*(pv+i); *(pv+i)=*(pv+j); *(pv+j)=aux; } return *(pv+i); } int main () { int n,i, *pv; printf("Digite a quantidade de termos do vetor\n"); scanf("%d", &n); pv=(int *)malloc(n*sizeof(int)); if(!pv) { printf("MEMORIA INSUFICIENTE"); exit(1); } for (i=0;i<n;i++) { printf("Digite o termo v[%d]\n", i+1); scanf("%d",pv+i); } printf("O valor do maior termo digitado e: %d",maior(pv,n)); printf("\n\n"); printf("O valor do menor termo digitado e: %d",menor(pv,n)); printf("\n\n"); printf("A media dos termos digitados e: %f", media(pv,n)); printf("\n\n"); printf("A quantidade de numeros negativos e: %d", numneg(pv,n)); printf("\n\n"); printf("O vetor invertido\n"); for (i=0;i<n;i++){ printf("%d\n",ordinv(pv,n)); } system ("PAUSE"); return 0; }Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.