Список с дробями: Variable or field 'input' declared void 'pd' was not declared in this scope - C (СИ)
Формулировка задачи:
почему не нравится 1ая функция?
#include <stdio.h>
#include <stdlib.h>
struct rational_fraction
{
int numerator;
int denumerator;
}fraction;
void input(fraction *pd)
{
int N;
printf("Введите числитель: " );
scanf("%d" pd->numerator);
printf("Введите знаменатель:");
scanf("%d",&N);
if(N==0)
{
printf("На ноль делить нельзя");
exit(0);
}
pd->denumerator = N;
}
void out(fraction dr)
{
printf("Дробь равна: %d/%d", dr.numerator,dr.denumerator);
}
fraction add(fraction dr1,fraction dr2)
{
fraction dr;
dr.numerator= dr1.numerator * dr2.denumerator + dr2.numerator*dr1.denumerator;
dr.denumerator=dr1.denumerator*dr2.denumerator;
return dr;
}
void sub(fraction dr1, fraction dr2, fraction *pdr)
{
pdr->numerator = dr1.numerator * dr2.denumerator - dr2.numerator*dr1.denumerator;
pdr->denumerator = dr1.denumerator*dr2.denumerator;
}
void *mult(fraction dr1, fraction dr2)
{
fraction mul;
mul=(fraction*)calloc(1,sizeof(fraction);
mul->numerator = dr1.numerator*dr2.numerator;
mul->denumerator =dr1.denumerator*dr2.denumerator;
return mul;
}
void divide (fraction *pd1, fraction *pd2)
{
fraction d;
d.numerator = pr1->numerator * pr2->denumerator;
d.denumerator = pr1->denumerator * pr2->numerator;
return d;
}Решение задачи: «Список с дробями: Variable or field 'input' declared void 'pd' was not declared in this scope»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
typedef struct rational_fraction
{
int numerator;
int denumerator;
}fraction;
void input(fraction *pd)
{
int N;
printf("Введите числитель: " );
scanf("%d", &pd->numerator);
printf("Введите знаменатель:");
scanf("%d",&N);
if(N==0)
{
printf("На ноль делить нельзя");
exit(0);
}
pd->denumerator = N;
}
void out(fraction dr)
{
printf("Дробь равна: %d/%d", dr.numerator,dr.denumerator);
}
fraction add(fraction dr1,fraction dr2)
{
fraction dr;
dr.numerator= dr1.numerator * dr2.denumerator + dr2.numerator*dr1.denumerator;
dr.denumerator=dr1.denumerator*dr2.denumerator;
return dr;
}
void sub(fraction dr1, fraction dr2, fraction *pdr)
{
pdr->numerator = dr1.numerator * dr2.denumerator - dr2.numerator*dr1.denumerator;
pdr->denumerator = dr1.denumerator*dr2.denumerator;
}
fraction *mult(fraction dr1, fraction dr2)
{
fraction *mul;
mul= (fraction*) malloc(sizeof(fraction));
mul->numerator = dr1.numerator*dr2.numerator;
mul->denumerator =dr1.denumerator*dr2.denumerator;
return mul;
}
fraction divide (fraction *pr1, fraction *pr2)
{
fraction d;
d.numerator = pr1->numerator * pr2->denumerator;
d.denumerator = pr1->denumerator * pr2->numerator;
return d;
}
int main()
{
fraction a,b,c;
fraction *p;
input(&a);
input(&b);
c = add(a, b);
out(c);
p = mult(a,b);
out(*p);
free(p);
c=divide(&a, &b);
out(c);
}