gpt4 book ai didi

c - 从cmd通过mingw编译报错,codeblocks可以编译执行

转载 作者:太空宇宙 更新时间:2023-11-04 04:25:21 25 4
gpt4 key购买 nike

我有下一个代码,但是当从 cmd 编译时出现 mingw 错误。

ultimo->siguiente = producto

for(producto=primer; producto != NULL ;producto = producto->siguiente)

siguiente = este->siguiente;

warning assignment from incompatible pointer 在这三行中显示警告。

有什么问题?我包含了代码库,string.h,stdlib.h

typedef struct Producto
{
int codigo_producto;
char descripcion[20];
float precio_unitario;
struct producto *siguiente;

} t_producto;

float aplicar_iva(float precio_base);
void eliminar_todo(t_producto*);
void emitir_saludo(void);
void imprimir_producto(t_producto);
t_producto* leer_producto(void);

int main()
{
t_producto *primer, *ultimo, *producto;
primer = NULL;
ultimo = NULL;

char decision;
int i, cantidad;
float total;

cantidad =0;
total = 0.0;

emitir_saludo();

while(1) //while infinito
{
do
{
printf("\nHay %d productos en el carrito. ¿Quiere pasar otro producto? [s/n]: ",cantidad);
decision = getchar();
while(getchar()==EOF);
}while(decision != 's' && decision != 'S' && decision != 'n' && decision != 'N');

if(decision=='n' || decision == 'N')
{
break;
}

producto = leer_producto();
if(primer == NULL) //si no hay ningun elemento
{
primer= producto;
}
if(ultimo != NULL) //si hay elemntos se le dice al ultimo que ya no es el ultimo
{
ultimo->siguiente = producto;
}
ultimo = producto;
cantidad++;
}
puts("\nPRODUCTOS:\n");
for(producto=primer; producto != NULL ;producto = producto->siguiente)
{
imprimir_producto(*producto);
total += producto ->precio_unitario;
}

printf("\nTotal deproductos: %d\n\n",cantidad);
printf("Precio total sin IVA: %.2f\n",total);
printf("Precio total con IVA: %.2f\n",aplicar_iva(total));
printf("\nBuenos dias.\n");

eliminar_todo(primer);

return 0;
}

float aplicar_iva(float precio_base)
{
return precio_base * 1.21;
}

void emitir_saludo(void)
{
printf("\n* * * * * * * * * * * * * * * * * *");
printf("\n* * PROGRAMA SUPERMERCADO * *\n");
printf("* * La calidad es lo primero * *\n");
printf("* * * * * * * * * * * * * * * * * *\n");
}

void imprimir_producto(t_producto t)
{
printf("%d %s %f\n",t.codigo_producto,t.descripcion,t.precio_unitario);
}

t_producto* leer_producto(void)
{
t_producto *p;
p = (t_producto*)malloc(sizeof(t_producto));
char entrada[80];

printf("\nCodigo producto: ");
fgets(entrada,10,stdin);
if(entrada[strlen(entrada)-1] == '\n')
{
entrada[strlen(entrada)-1] = '\0';
}
p->codigo_producto = (int) strtol(entrada,NULL,10);

printf("Descripcion: ");
fgets(p->descripcion,20,stdin);
if(p->descripcion[strlen(p->descripcion)-1] == '\n')
{
p->descripcion[strlen(p->descripcion)-1] = '\0';
}


printf("Precio: " );
fgets(entrada,10,stdin);
if(entrada[strlen(entrada)-1] == '\n')
{
entrada[strlen(entrada)-1] = '\0';
}
p->precio_unitario = strtof(entrada,NULL);

p->siguiente = NULL;
return p;
}

void eliminar_todo(t_producto* producto)
{
t_producto *este, *siguiente;
este =producto;
while(este!=NULL)
{
siguiente = este->siguiente;
este->siguiente = NULL;
free(este);
este=siguiente;
}
}

提前致谢!

最佳答案

struct Producto *

分配给 struct producto * 的指针类型不兼容
typedef struct producto
{
int codigo_producto;
char descripcion[20];
float precio_unitario;
struct producto *siguiente;

} t_producto;

注意小写的 producto 而不是 Producto

关于c - 从cmd通过mingw编译报错,codeblocks可以编译执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42171744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com