我制作代码以获取一些信息,制作一个" struct",然后列出它们。
我可以添加我想要的所有信息,但是当我读取它们时,浮点值是错误的。 我无法查看是否在代码上犯了错误,或者使用了任何错误代码。
这还不完整,我还需要添加更多功能,而且我的菜单效果不佳,所以不要介意它。
在菜单1中,只有1个正在工作,而在菜单2上,1表示包含,2表示列表,3表示排除。
以下是代码的一些部分:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ESTOQUEtamanho 10
struct PRODUTO {
char codigo[20];
char descricao[100];
int quantidade;
float precoCusto;
float precoVenda;
char livre;
};
struct PRODUTO estoque[ESTOQUEtamanho];
void inicializa(){
int i;
for (i=0;i<ESTOQUEtamanho;i++)
estoque[i].livre=1;
}
int insereEstoque (char *c, char *d, int q, float pC, float pV){
int i;
for (i=0;i<ESTOQUEtamanho;i++) {
if (estoque[i].livre) {
strcpy(estoque[i].codigo, c);
strcpy(estoque[i].descricao, d);
estoque[i].quantidade = q;
estoque[i].precoCusto = pC;
estoque[i].precoVenda = pV;
estoque[i].livre=0;
return(1);
}
}
return(0);
}
void listarEstoque(){
int i;
for (i=0;i<ESTOQUEtamanho;i++)
if (!estoque[i].livre)
printf("\n-------------------------\nCodigo: %s\nDescricao: %s\nQuantidade: %d\nPreco de Custo: %d\nPreco de Venda: %d", estoque[i].codigo, estoque[i].descricao, estoque[i].quantidade, estoque[i].precoCusto, estoque[i].precoVenda);
}
int excluirEstoque (char *c){
int i;
for (i=0;i<ESTOQUEtamanho;i++){
if(!estoque[i].livre)
if(!strcmp(c, estoque[i].codigo)){
estoque[i].livre = 1;
return(1);
}
}
return(0);
}
void main(){
int opc1, opcEstoque;
char codigo[20], descricao[100];
int quantidade;
float precoCusto, precoVenda;
inicializa();
while (1) {
printf("\n-------------------------------\nControle de Estoque\n\tOpcoes:\n\t1-Estoque\n\t2-Cliente\n\t3-Vendedor\n\t4-Venda\n\nEntre com sua opcao: ");
opc1=getchar();getchar();
switch (opc1) {
case '1': printf("\n-------------------------------\nEstoque\n\tOpcoes:\n\t1-Incluir\n\t2-Listar\n\t3-Excluir\n\t0-Voltar\n\nEntre com sua opcao:");
opcEstoque=getchar();getchar();
switch (opcEstoque) { printf("\nEntre com o nome: ");
case '1':printf("\nEntre com o codigo: ");
gets(codigo);
printf("\nEntre com a descricao: ");
gets(descricao);
printf("\nEntre com a quantidade: ");
scanf("%d", &quantidade);
printf("\nEntre com o preco de custo: ");
scanf("%f", &precoCusto);
printf("\nEntre com preco de venda: ");
scanf("%f", &precoVenda);
if (insereEstoque (codigo, descricao, quantidade, precoCusto, precoVenda)) printf("\nProduto Incluso");
else printf("\nFalha na inclusao");
break;
case '2': listarEstoque();
break;
case '3': printf("\nEntre com o codigo para excluir: ");
gets(codigo);
if (excluirEstoque (codigo)) printf("\nProduto Excluido");
else printf("\nFalha na exclusao");
break;
default: printf("\nOpção não implementada! ");
break;
}break;
}
}
}`
答案 0 :(得分:0)
%f,而不是%d
变化:
printf("...Preco de Custo: %d\nPreco de Venda: %d"...);
为:
printf("...Preco de Custo: %f\nPreco de Venda: %f"...);