TL_prog Posted November 13, 2019 at 01:56 AM Report Share #616598 Posted November 13, 2019 at 01:56 AM Boa Noite pessoal, Agradecia, se possível, a vossa ajuda. Sou novo na área da programação mais nomeadamente no C. Tenho um exercício para fazer que consiste em calcular o maior número, o menor número e a média que são indicados pelo utilizador e mostrar quais foram os valores. Neste momento, já consegui efectuar o cálculo da média, do maior e do menor valor, no entanto, não consigo fazer o código para indicar os valores que o utilizador introduziu, sei que tem de ser pelo método de vectores, mas esta a dar erro. Vou colocar abaixo o código, podem ajudar? #include <stdio.h> #include <stdlib.h> #define MAX 10 int main() { int NdNotas=0; float nota=0; int contador=0; float somatorio=0; float media=0; float maior=0; float menor=20; printf("quantas notas sao:"); scanf("%d",&NdNotas); if (NdNotas>MAX){ printf("no maximo %d notas",MAX); } else{ contador=NdNotas; while (contador>0){ do{ printf("insira o valor da nota: "); scanf("%f",¬a); if(nota>maior){ maior=nota; } if(nota<menor){ menor=nota; } }while (nota<0 || nota> 20); somatorio=somatorio+nota; contador--; } } media = (somatorio/NdNotas) ; printf("Media do aluno = %f\n",media); return 0; } Obrigado! Link to comment Share on other sites More sharing options...
PsySc0rpi0n Posted November 13, 2019 at 01:48 PM Report Share #616602 Posted November 13, 2019 at 01:48 PM Se o code está a funcionar, não será apenas fazer o printf das variáveis menor e maior ? Eu não testei o código, estou apenas a assumir que funciona. E para que é necessário um vector se queres apenas imprimir o menor e o maior? Ou queres imprimir todos os valor introduzidos? Kurt Cobain - Grunge misses you Nissan GT-R - beast killer Link to comment Share on other sites More sharing options...
TL_prog Posted November 13, 2019 at 01:54 PM Author Report Share #616603 Posted November 13, 2019 at 01:54 PM Olá, Muito obrigado pela resposta. O código está a funcionar e já fiz o Printf, queria imprimir os valores todos introduzidos pelo utilizador. Cumprimentos Link to comment Share on other sites More sharing options...
PsySc0rpi0n Posted November 13, 2019 at 08:48 PM Report Share #616604 Posted November 13, 2019 at 08:48 PM Em 13/11/2019 às 14:54, TL_prog disse: Olá, Muito obrigado pela resposta. O código está a funcionar e já fiz o Printf, queria imprimir os valores todos introduzidos pelo utilizador. Cumprimentos Nesse caso tens que pedir valor a valor e guardá-los num vector. Usa um loop for para isso. Normalmente é a aboragem mais comum. Kurt Cobain - Grunge misses you Nissan GT-R - beast killer Link to comment Share on other sites More sharing options...
TL_prog Posted January 16, 2020 at 12:58 AM Author Report Share #617083 Posted January 16, 2020 at 12:58 AM Em 13/11/2019 às 20:48, PsySc0rpi0n disse: Nesse caso tens que pedir valor a valor e guardá-los num vector. Usa um loop for para isso. Normalmente é a aboragem mais comum. Obrigado! Neste caso eu corrigi o código, problema resolvido, muito obrigado pela ajuda! Um outro problema que surge é o facto do programa ter de permitir a editar alguns dos registos: void editar(){ struct cliente clienteAGuardar; system("cls"); int opcao=0; char* pesquisa; printf("Indique o id do cliente:"); fflush(stdin); scanf("%d", &pesquisa); FILE *fCliente ; fCliente = fopen(FileCliente, "rb+"); fseek(fCliente,0,SEEK_SET); while (fread(&clienteAGuardar, sizeof(struct cliente), 1, fCliente)) { if (strcmp(&clienteAGuardar.IDcliente,&pesquisa) == 0) { do{ system("cls"); printf("\n---------MENU---------/\n"); fflush(stdin); printf("\n Que variavel deseja alterar?: "); printf("Opcao 1\t- Nome"); scanf("%d",&opcao); if(opcao==1){ printf("Digite novo nome:"); fflush(stdin); printf(clienteAGuardar.nome); fwrite (&clienteAGuardar, 1, sizeof(struct cliente), fCliente); } printf("\n Digite 1 para continar e 0 para terminar"); scanf("%d",&opcao); }while(opcao!=0); break; } } fclose(fCliente); } No entanto, como não sei inventei um pouco e não consigo editar qualquer valor. Podem, por favor, ajudar? Se possivel com código uma vez que ainda sou leigo em C. Cumprimentos Link to comment Share on other sites More sharing options...
PsySc0rpi0n Posted January 16, 2020 at 09:10 PM Report Share #617093 Posted January 16, 2020 at 09:10 PM Eu não sei se percebi o teu código mas se calhar era mais fácil se preparares primeiro um algoritmo e depois tentar implementar esse algoritmo. Algo assim: - Perguntar o que quer alterar - Ler a opção - processar a opção (ou seja, ver qual é e actuar conforme a opção escolhida. Normalmente usa-se um switch(){case}. - o passo anterior deve chamar uma função que tem que fazer o seguinte: - pesquisar o dado que se quer alterar - depois de o encontrar, proceder à alteração Eu sei que vais dizer "ah e tal, isso é muito bonito". Mas com as coisas assim, se calhar consegues pensar melhor em formas isoladas de resolver cada passo. E no fim, articular algumas linhas de cóigo e juntar tudo! Pelo que vi, e se percebi o código, falta-te o mais importante que é a pesquisa do valor a substituir. Ou seja, pedes o que pretende alterar, e depois passas logo para o passo de proceder à alteração sem pesquisar o valor a alterar! Kurt Cobain - Grunge misses you Nissan GT-R - beast killer Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now