Как использовать функции в C (для начинающих) - PullRequest
0 голосов
/ 24 сентября 2019

Я пишу программу для вычисления площади прямоугольника.Я никогда раньше не писал на C, но я считаю, что мне не хватает основополагающего аспекта понимания функций и способов прохождения через переменные.Вот что у меня есть:


int computeArea(int length, int width) {
    int area;
    area = length * width;

    return(area);

}

int main() {
    printf("Enter the length and width of the rectangle: \n");
    scanf("%d %d", &length, &width);
    printf("The area of a %d by %d rectangle is %d \n", length, width, area);
}

В строке scanf я получаю сообщение об ошибке «Использование необъявленного идентификатора» для введенных переменных.Может кто-нибудь объяснить мне, где я ошибся в объявлении и использовании этих переменных?

Ответы [ 4 ]

2 голосов
/ 24 сентября 2019
  1. Вы должны объявить length и width в функции main().
  2. Вы не вызываете функцию в функции main().Чтобы использовать этот фрагмент кода, определенный как computeArea(int length, int width), вы должны вызвать его в функции main().Как показано ниже.

computeArea(34, 56);

2 голосов
/ 24 сентября 2019

некоторые вещи отсутствуют;в первую очередь вы должны определить внутри основной функции три переменные (int length = 0, width = 0, area = 0;), которые вы используете;затем перед печатью результата необходимо вызвать функцию (area = computeArea (длина, ширина);), которая вычисляет площадь

int computeArea(int length, int width) {
    int area;
    area = length * width;

    return(area);

}

int main() {
    int length=0, width=0, area=0;
    printf("Enter the length and width of the rectangle: \n");
    scanf("%d %d", &length, &width);
    area = computeArea(length,width);
    printf("The area of a %d by %d rectangle is %d \n", length, width, area);
}
1 голос
/ 24 сентября 2019

Переменные должны быть объявлены до их использования.

Вы забыли объявить переменные length, width и area в main.

И вы не вызывалиfunction.

Также, поскольку длина или ширина не могут быть отрицательными, соответствующие переменные должны быть объявлены как unsigned int.

Что вы имеете в виду следующее

#include <stdio.h>

unsigned long long int computeArea( unsigned int length, unsigned int width ) 
{
    return ( unsigned long long int )length * width;
}

int main( void ) 
{
    unsigned int length = 0, width = 0;

    printf( "Enter the length and width of the rectangle: " );
    scanf( "%u %u", &length, &width );

    printf( "The area of a %u by %u rectangle is %llu \n", 
            length, width, computeArea( length, width ) );
}
0 голосов
/ 24 сентября 2019
#include<stdio.h>

int computeArea(int length, int width) 
{
    int area;
    area = length * width;
    return(area);
}
int computeArea(int,int);
int main() 
{
    int length, width, area; //you have not defined the variables
    printf("Enter the length and width of the rectangle: \n");
    scanf("%d %d", &length, &width);
    printf("The area of a %d by %d rectangle is %d \n", length, width, area);
}

Сначала необходимо объявить имя функции и тип ее возврата (например, int, void).

int computeArea(int, int) - это объявление функции.

Также вы не объявили переменные viz, length, width, area.В Си всегда сначала объявляйте переменные в функции, которую вы используете.Также вы должны знать, как называются функции и как они могут передавать параметры (переменные) через функции.

...