Список с дробями: 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);
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы