• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

jamirooo

[Resolvido] maximo de um vector de inteiros

7 mensagens neste tópico

Boas! as minhas "aventuras" com apontadores continuam... e o que para mim faz sentido, parece que na prática não faz tanto sentido assim.... :wallbash:

A duvida é, como indica o assunto do tópico, criar um programa que encontre o valor maximo de um vector de inteiros...

#include <stdio.h>
int max(int i []){ 
int maxAux=0;
int *max;
max = i;
while(*max != '\0'){
if(*max >= maxAux){
maxAux = *max;
max++;
}else{
max++;
}}
return maxAux;
}
int main() {
int i [21];
printf("Quais os numeros?\n");
scanf("%20d", i);
int maxi = max(i);
printf("maximo: %d\n", maxi);
return 0;
}

depois do programa compilado , executo, insiro os numeros..por exemplo "1234" e ele devolve

"1990186656" que eu penso que seja o endereço de memória do vector...

eu nao estou mesmo a ver onde é o problema pois na variável "maxAux" eu guardo o valor *max que supostamente deveria conter os valores que constituem o vector e não o seu endereço... ;)

Desde já, Obrigado...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

scanf("%20d", i);

Só estás a ler um inteiro, e não um vector de inteiros.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#include <stdio.h>
#define N 1
int max(int i []){ 
int maxAux=0;
int *max;
max = i;
while(*max != '\0'){
if(*max >= maxAux){
maxAux = *max;
max++;
}else{
max++;
}}
return maxAux;
}

int main() {
int i [N];
int y;
printf("Quais os numeros?\n");
for(y=0;y<N;y++){
scanf("%d", &i[y]);
}
int maxi = max(i);
printf("maximo: %d\n", maxi);
return 0;
}

continua a devolver-me um endereço de memória,  e obrigado pela dica... ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estás a testar  o caso de paragem da travessia dum array de inteiros com a presença do caracter '\0'. O que tens de fazer é percorrer o array até N-1, isto é:

/*blablabla*/
int j=0;
while (j<N)
//Blablabla
j++;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agora só te falta indentar o código correctamente. Ainda bem que já alguém te respondeu, porque eu já nem olho para código não indentado. Muito dificil de ler para quem já passa o dia a olhar para código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agora só te falta indentar o código correctamente. Ainda bem que já alguém te respondeu, porque eu já nem olho para código não indentado. Muito dificil de ler para quem já passa o dia a olhar para código.

Também foi a razão porque nem olhei para a função max... ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora