【问题标题】:Getting wrong value in variable in C using structs使用结构在 C 中的变量中获取错误值
【发布时间】:2015-05-23 05:03:22
【问题描述】:

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

【问题讨论】:

    标签: c data-structures struct


    【解决方案1】:

    您正在使用"%d" 打印浮点数。这会导致未定义的行为。

    代替

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

    使用

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多