我在获取正确的 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_);
}
最佳答案
您正在使用“%d”
来打印 float 。这会导致未定义的行为。
而不是
printf("\nEl valor del cociente es: %d",(polinomio_->polinomio->cociente));
使用
printf("\nEl valor del cociente es: %f",(polinomio_->polinomio->cociente));
// ^^^
关于c - 使用结构在 C 中获取变量的错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30409065/