我在为cociente获得正确价值方面遇到了问题;每次我运行它时,cociente打印为1,但这不是我想要分配的值,这是我打印的代码:
printf("\nEl valor del cociente es: %d",(polinomio_->polinomio->cociente));
。
这是我的代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct termino
{
int exponente;
float cociente;
} termino;
typedef struct polinomio
{
termino* polinomio;
int size;
} polinomio;
void multiplicarEscalar(int escalar, termino* term){
term->cociente = (term->cociente)*(float)escalar;
}
main()
{
int size_;
termino* terminos;
int cociente_temporal;
polinomio *polinomio_;
//polinomio_ = malloc(sizeof(polinomio));
//printf("%d",(sizeof(polinomio_)*2));
printf("Bienvenido al cálculo de operaciones usando 1 polinomio.\n");
printf("Ingrese la cantidad de términos que tendrá el polinomio.");
scanf("%d",&size_);
terminos =(termino*) malloc(sizeof(termino) * size_);
polinomio_ = (polinomio*) malloc(sizeof(polinomio) );
polinomio_->polinomio = terminos;
polinomio_->size = size_;
printf("Ingrese el cociente 0:\n");
scanf("%d",&cociente_temporal);
polinomio_->polinomio->cociente = cociente_temporal;
//multiplicarEscalar(2,polinomio_->polinomio);
printf("\nEl valor del cociente es: %d",(polinomio_->polinomio->cociente));
free(polinomio_);
}
答案 0 :(得分:1)
您正在使用"%d"
来打印浮动广告。这导致了未定义的行为。
而不是
printf("\nEl valor del cociente es: %d",(polinomio_->polinomio->cociente));
使用
printf("\nEl valor del cociente es: %f",(polinomio_->polinomio->cociente));
// ^^^