ricfao Posted January 9, 2016 at 12:45 AM Report Share #591679 Posted January 9, 2016 at 12:45 AM (edited) void AtualizarPreco(PRATO prato[], int idPrato){ int id; system("cls"); if (idPrato==1) { printf("Nao ha pratos adicionados.\n"); return; } printf("Introduza o numero do prato.\n"); scanf("%i", &id); printf("Preco atual = %.2f.\n", prato[id].preco); printf("Introduza o novo preco.\n"); scanf("%.2f", &prato[id].preco); printf("O novo preco do prato %s e %.2f.\n",prato[id].nome,prato[id].preco); system("pause"); system("cls"); } O preço fica sempre o mesmo que tinha sido introduzido antes, não consigo resolver o problema.. Alguém? Edited January 9, 2016 at 12:53 PM by pwseo syntax highlight. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 9, 2016 at 01:37 AM Report Share #591684 Posted January 9, 2016 at 01:37 AM isso cheira ao problema de sempre ... limpeza do buffer de leitura a maneira mais simples será adicionar um espaço no início do formato de leitura dos dados IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
ricfao Posted January 9, 2016 at 02:28 AM Author Report Share #591686 Posted January 9, 2016 at 02:28 AM Isso não é só com char's? De qualquer forma continua sem dar, algo está mal com aquele ultimo scanf. Mais ideias? Link to comment Share on other sites More sharing options...
ricfao Posted January 9, 2016 at 03:12 AM Author Report Share #591687 Posted January 9, 2016 at 03:12 AM (edited) Já resolvi, era pq no scanf tinha %.2f, alterei para %f e funcionou Já agora peço-te ajuda na ultima função do trabalho em que pede para introduzir o ingrediente mais utilizado em todos os pratos typedef struct data { int dia,mes,ano; } DATA; typedef struct ingrediente { int id; char nome[10]; int qtd; int qtdMin; DATA dataUltRepo; } ING; typedef struct prato { int id; char nome[20]; float preco; int qtd; int produtos[7]; ING ingrediente; } PRATO; Na variável produtos, é onde ficam armazenadas as quantidades necessárias de um certo ingrediente num certo prato. int InserirPrato (PRATO prato[],ING ingrediente[],int idPrato,int id) { int i; system("cls"); if (id==1) { printf("Nao ha ingredientes adicionados.\n"); return; } prato[idPrato].id=idPrato; printf("Introduza o nome do prato.\n"); fflush(stdin); gets(prato[idPrato].nome); printf("Introduza o preco do prato.\n"); scanf("%f",&prato[idPrato].preco); if (prato[idPrato].preco<0) { printf("O preco nao pode ser negativo\n"); return 0; } for (i=1;i<id;i++){ fflush(stdin); printf("Que quantidade necessita de %s\n",ingrediente[i].nome); scanf("%i",&prato[idPrato].produtos[i]); } printf("O prato %s foi adicionado.\n\n",prato[idPrato].nome); system("pause"); system("cls"); } Nesta função o programa vai perguntando as quantidades necessarias dos ingredientes introduzidos. Se me conseguires ajudar ficava agradecido Edited January 9, 2016 at 12:53 PM by pwseo syntax highlight. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 9, 2016 at 02:21 PM Report Share #591700 Posted January 9, 2016 at 02:21 PM Podes ser mais claro na tua duvida? Isto porque colocado dessa forma, parece que estas a pedir a alguém que te faça o problema IRC : sim, é algo que ainda existe >> #p@p Portugol Plus 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