Question:
I have the following struct
:
typedef struct{
int Numerador ;
int Denominador ;
} TNumeroRacional ;
In this function I ask the user to enter 2 numerators and denominators to form 2 rational numbers.
void Atribuir (TNumeroRacional* num,TNumeroRacional* num2,int Numerador,int Denominador){
printf(" a: Atribuir valores para os campos.\n");
printf("Primeiro numero racional:");
printf(" Por favor, insira os valores: \n Numerador: ");
scanf("%d",&num->Numerador);
printf(" Denominador: ");
scanf("%d",&num->Denominador);
printf("Segundo numero racional:");
printf(" Por favor, insira os valores: \n Numerador: ");
scanf("%d",&num2->Numerador);
printf(" Denominador: ");
scanf("%d",&num2->Denominador);
printf("Numero racional 1: %d/%d \n",num.Numerador,num.Denominador);
}
When I try to print any element, it appears:
error: request for member 'Numerador' in something not a structure or union error: request for member 'Denominador' in something not a structure or union
I don't know if my error is in the assignment, but the error message only appears on the printf line.
Answer:
This problem I didn't see happen but it could be because the problem is in the call and this was not mentioned in the question, there was another error that I fixed in the final printf()
:
#include <stdio.h>
typedef struct {
int Numerador;
int Denominador;
} TNumeroRacional;
void Atribuir(TNumeroRacional *num, TNumeroRacional *num2, int numerador, int denominador) {
printf(" a: Atribuir valores para os campos.\n");
printf("Primeiro numero racional:");
printf(" Por favor, insira os valores: \n Numerador: ");
scanf("%d", &num->Numerador);
printf(" Denominador: ");
scanf("%d", &num->Denominador);
printf("Segundo numero racional:");
printf(" Por favor, insira os valores: \n Numerador: ");
scanf("%d", &num2->Numerador);
printf(" Denominador: ");
scanf("%d", &num2->Denominador);
printf("Numero racional 1: %d/%d \n", num->Numerador, num->Denominador);
}
int main(void) {
int numerador = 0, denominador = 0;
TNumeroRacional num, num2;
Atribuir(&num, &num2, numerador, denominador);
}
See working on ideone . And on repl.it. Also posted on GitHub for future reference .