使用结构在C中的变量中获取错误的值

时间:2015-05-23 05:03:22

标签: c data-structures struct

我在为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_);
}

1 个答案:

答案 0 :(得分:1)

您正在使用"%d"来打印浮动广告。这导致了未定义的行为。

而不是

printf("\nEl valor del cociente es: %d",(polinomio_->polinomio->cociente));

使用

printf("\nEl valor del cociente es: %f",(polinomio_->polinomio->cociente));
//                                 ^^^