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

标签 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_);
}

最佳答案

您正在使用“%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/

相关文章:

c - 我如何查看对内核模块所做的更改?

c - 没有标签的结构的 typedef 每次使用时都会创建不同的类型吗?如果不是,为什么?

c# - 将 C 转换为 C#

c - 在 C 中使用套接字将文件发送到 ftp 服务器

c - g_tree_lookup 中的段错误

c++ - 给定一个 DI-Graph。检查所有节点对是否存在来自 (u,v) 或 (v,u) 的路径

java - 反转链表

c - 实现 UART 帧 Controller

c++ - 为什么typedef相同的标识符

c - 没有 sudo 的 SIGKILL init(PID=1)? Linux 中的错误?