Ir ao conteúdo
  • Cadastre-se

C Programa de vetores não estou conseguindo colocar para mostrar o menor numero <>


Ir à solução Resolvido por devair1010,

Posts recomendados

seguite o professor passou esse exercicio: 

Faça um programa que

a) some os valores de todas as posições de um vetor de 7 posições

b) encontre o menor valor de todos os números lançados

A soma esta ok, não to conseguindo fazer o programa mostrar o menor valor

 

<CODE>

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

int main(){

system ("color 09");
setlocale(LC_ALL,"");


int v[7];
int i;
int soma=0;
int menor;

for (i=1; i<=7; i++) {

printf("Informe o numero %i: ",i);
scanf("%i",&v[7],menor);

soma += v[7];

  if (v[7] < menor)
menor v[7];
}


printf("Soma dos 7 vetores informados: %i\n",soma);
  printf ("Menor Vetor:%i\n",menor);

return 0;
}
 

Link para o comentário
Compartilhar em outros sites

  • Solução

@pandafeliz    você colocou a posição 7 do vetor , para inserir dados e somar e verificar o valor nas comparações com if's  ,  e não pode isso , pois os vetores vão de zero até o limite menos hum , e ao inserir valores em uma posição inexistente dá erro ,  e a variáveL menor precisa ser inicializada com o primeiro valor inserido no vetor ,e depois nos outros valores se faz as comparações se é menor que aquele , e outra coisa , é essa biblioteca locale.h , isso não funciona bem , é problemas , atrapalha os códigos dos caracteres ASCII , melhor não mexer com isso não ,  deixa em Inglês mesmo ,  e você colocou um controle de cores , mas esse aí é pouco eficaz ,  seria melhor usar o textcolor ,  e seu código está quase certo , e com alguma modificações poderia ser assim  .,: ., ; ,,

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <Windows.h>
void textcolor(int, int);
int main()
{
    //system("color 09");
    //setlocale(LC_ALL, "");
    textcolor(14, 0);  // texto colorido , primeiro a cor das letras e depois a cor de fundo da tela
    int v[7];          // cores de 1 ate 15  , vão do preto ao branco
    int i;             // aqui letras amarelas e fundo preto
    int soma = 0;
    int menor = 0;
    for (i = 0; i < 7; i++)  // vtores coeçam em zero e vai até o limite menos hum
    {
        printf("Informe o %d%c numero : ",i + 1 , 167);
        scanf("%d", &v[i]);  // posição errada do vetor , 
        if (!i) menor = v[0];// inicializa a variaveL
        soma += v[i];        // posição errada do vetor , 
        if (v[i] < menor)    // posição errada do vetor , 
            menor = v[i];    // posição errada do vetor , 
        }                    // nesse aí não existe essa Tal posição 7
	                         // ele só vai de zero ate seuS
    textcolor(12, 15);       // letras vermelhas e fundo branco
    printf("\n");
    printf("Soma dos 7 vetores informados -: %3d  \n", soma);
    printf("Menor Vetor -------------------: %3d  \n", menor);
    textcolor(7, 0);         // volta para a cor normal do console cinza claro e fundo preto
    return 0;
}

void textcolor(int letra, int fundo)
{
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), letra + (fundo << 4));
}

 

  • Curtir 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

@pandafeliz

Revise o assunto de índices da matriz.

É uma variável que escala as posições da matriz de  0 até seu tamanho -1.

 

Talvez queira está resolvendo esse exercício por partes apenas para reforçar o assunto de matrizes e índices, se considerar escreva um ‘loop’ para pegar a matriz, outro ‘loop’ para determinar soma e menor valor.

 

A ironia é que, determinar soma e menor valor da matriz é um procedimento de iteração e sabemos que a entrada de valores é uma iteração também, logo o esperto é resolver os dois de uma só vez.

 

A única ideia que justificaria o uso da matriz nesse contexto é pegar não o valor do menor elemento nela, mas, sim, o ÍNDICE do menor elemento para usar a dita cuja na impressão das informações no final. É pouco para justificar uma matriz, porém é melhor que nada.

 

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!