2015-05-23 5 views
-1

У меня проблемы с правильным значением для cociente; каждый раз, когда я запускаю его, cociente печатается как 1, но это не значение, которое я хочу ему назначить, это код, в котором я печатаю:Получение неправильного значения переменной в C с использованием структур

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

Вы используете "%d" для печати поплавка. Это приводит к неопределенному поведению.

Вместо

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

использование

printf("\nEl valor del cociente es: %f",(polinomio_->polinomio->cociente)); 
//         ^^^ 
Смежные вопросы