LauraC Posted May 1, 2022 at 04:14 PM Share Posted May 1, 2022 at 04:14 PM (edited) "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",¬as[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 Edited May 1, 2022 at 04:15 PM by LauraC Quote Link to comment Share on other sites More sharing options...
mauro_b Posted May 1, 2022 at 04:41 PM Share Posted May 1, 2022 at 04:41 PM (edited) 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 Edited May 1, 2022 at 04:42 PM by mauro_b 1 Quote Link to comment Share on other sites More sharing options...
LauraC Posted May 1, 2022 at 04:44 PM Author Share Posted May 1, 2022 at 04:44 PM (edited) 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 Edited May 1, 2022 at 04:45 PM by LauraC Quote Link to comment Share on other sites More sharing options...
Pimptech Posted May 11, 2022 at 04:22 AM Share Posted May 11, 2022 at 04:22 AM @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); Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.