Ir para conteúdo

Vetor em C


LauraC

Posts Recomendados

"Escreva um programa que leia 20 notas (valores reais entre 0 e 10), armazene-as em um vetor e então diga se uma determinada nota x digitada pelo usuário existe no vetor. O programa deve repetir o procedimento de leitura de x e busca de x no vetor até que o usuário digite um valor negativo".

Existe algum erro que não consigo reconhecer quando vai verificar se existe ou nao existe.

#include <stdio.h>

 

int main(){

 

    float notas[20],busca;

    int i = 0;

 

    do{

 

        scanf("%f",&notas[i]);

 

        if(notas[i]>=0.0 && notas[i]<=10){

        i++;

 

        }else{

        break;

        }

 

    }while(i<20);  

 

    for(i=0;i<20;i++){

        scanf("%f",&busca);

 

        if(notas[i] == busca){

            printf("existe\n");

        }else{

            printf("nao existe\n");

        }

    }

 

return 0;

}

es_t5a.c

Editado por LauraC
Link para o comentário
Compartilhar em outros sites

Está parcialmente conforme os requesitos enunciado. Falhou  na parte do problema que busca x enquanto x é maior ou igual 0.

Na forma de algoritmo narrativo descritivo

Ler x, Enquanto 0<=x Faz:

           buscar de x em Notas 

           Ler x

 

 

 

Editado por mauro_b
  • Agradecer 1
Link para o comentário
Compartilhar em outros sites

Eu corrigi essa parte mas quando eu executo em um teste a saida fica assim:

(teste com nota de 0 a 10 e depois verifiquei se existe o numero 1)

existe
nao existe
nao existe
nao existe
nao existe
nao existe
nao existe
nao existe
nao existe
nao existe
existe
nao existe
nao existe
nao existe
nao existe
nao existe
nao existe
nao existe
nao existe
nao existe

 

sendo que deveria aparecer só 1 vez

Editado por LauraC
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

@LauraC Existe duas coisas que você pode fazer nesse caso, levando em consideração esse código mais simples.

Pelo enunciado tá faltando coisa. Ele pede pra você pedir as notas ao usuário enquanto ele não digitar um número negativo. Nesse caso pode usar o do-while. pra ficar repetindo enquanto o valor digitado é positivo. Faltou no seu código iterar com um loop-for as notas. Você pode utilizar uma variavel de controle nesse caso, um CHAR resolve. Veja se entende o exemplo abaixo, qualquer coisa pode perguntar.

float valor;
char controle = 'f';
do {
	scanf(valor);
  	controle = 'f';
    for (int i=0; i<20; i++){
		if(nota[i]==valor){
			printf("existe");
          	controle = 'v';
          	break;
        }
	}
  	if (controle=='f'){
		printf("não existe");
    }
} while(valor > 0);
        



   
 

Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...