Выдает ошибку - C (СИ) (70377)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h> 
#include <locale.h> 
#include <stdlib.h> 
#include <math.h> 
#define X 14 
#define Y 2 
#define Z 16
 
void drow(char c);
float calc(float h, float g);

main()
{
    int menu;
    setlocale(LC_ALL, "RUS");
 
    puts("Эта программа рисует или считает периметр треугольника");
    puts("\n 1-Нарисовать 2-Посчитать периметр 3-Выход");
    scanf_s("%d", &menu);
    switch (menu)
    {
    case 1:drow('c'); break;
    case 2:calc(5, 4); break;
    default:return;
    }

    void drow(char c);
    {
        char a;
        int i, j, b;
        setlocale(LC_ALL, "RUS");
        puts("Эта программа рисует тупоугольный треугольник заданым символом\n Нажмите любую кнопку");
        a = getchar();
        puts("\tТупоугольный треугольник\n\n\n");
        printf(" ");
        for (i = 0; i < 1; i = 1) // Верх треугольника 
            putchar(a);
        putchar('\n');
        for (i = 0; i < X; i++)
        {
            printf(" ");
            for (j = 0; j < X - i; j++) //Левая часть 
                printf(" ");
            putchar(a);
            for (b = 1; b < Y + i; b++) //Правая часть 
                putchar(' ');
            putchar(a);
            putchar('\n');
 
        }
        printf(" ");
        for (i = 0; i < Z; i++) // Основание 
            putchar(a);
        putchar('\n');
    }
    float calc(float h, float g);
    {
        int P;
        P = X + Y + Z;
        system("pause");
        printf("Площадь равна %d \n", P);
        system("pause");
    }
 
}

Ссылка на неразрешенный внешний символ _drow в функции _main Ссылка на неразрешенный внешний символ _calc в функции _main

Решение задачи: «Выдает ошибку»

textual
Листинг программы
#include <stdio.h> 
#include <locale.h> 
#include <stdlib.h> 
#include <math.h> 
#include <windows.h>
#define X 14 
#define Y 2 
#define Z 16
 
void drow(char c);
void calc(float h, float g);
 
 
int main()
{
    int menu;
    SetConsoleOutputCP(1251);
    puts("Эта программа рисует или считает периметр треугольника");
    puts("\n 1-Нарисовать 2-Посчитать периметр 3-Выход");
    scanf("%d", &menu);
    switch (menu)
    {
    case 1:
        drow('c'); 
        break;
    case 2:
        calc(5, 4); 
        break;
    default:
        break;
    }
 
 }
    void drow(char c)
    {
        char a;
        int i, j, b;
        puts("Эта программа рисует тупоугольный треугольник заданым символом\n Нажмите любую кнопку");
        a = getchar();
        puts("\tТупоугольный треугольник\n\n\n");
        printf(" ");
        for (i = 0; i < 1; i = 1) // Верх треугольника 
            putchar(a);
        putchar('\n');
        for (i = 0; i < X; i++)
        {
            printf(" ");
            for (j = 0; j < X - i; j++) //Левая часть 
                printf(" ");
            putchar(a);
            for (b = 1; b < Y + i; b++) //Правая часть 
                putchar(' ');
            putchar(a);
            putchar('\n');
 
        }
        printf(" ");
        for (i = 0; i < Z; i++) // Основание 
            putchar(a);
        putchar('\n');
    }
    void calc(float h, float g)
    {
        int P;
        P = X + Y + Z;
        system("pause");
        printf("Площадь равна %d \n", P);
        system("pause");
    }

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы: , , , , .
  2. Определяются константы X, Y, Z.
  3. Определяются функции drow и calc.
  4. В функции main происходит вывод меню.
  5. В случае выбора пункта меню 1, вызывается функция drow с аргументом 'c'.
  6. В случае выбора пункта меню 2, вызывается функция calc с аргументами 5 и 4.
  7. В функции drow происходит рисование треугольника.
  8. В функции calc происходит расчет и вывод периметра треугольника.
  9. Задаются значения переменных: int menu;, char a;, int i, j, b;, float h, float g;, int P;.
  10. Значения переменных X, Y, Z равны 14, 2 и 16 соответственно.
  11. Значение переменной menu равно 1.
  12. Значение переменной a не определено.
  13. Значения переменных i, j, b не определены.
  14. Значения переменных h, g не определены.
  15. Значение переменной P не определено.
  16. Происходит установка консоли в кодировку 1251.
  17. Происходит вывод строки Эта программа рисует или считает периметр треугольника.
  18. Происходит вывод строки 1-Нарисовать 2-Посчитать периметр 3-Выход.
  19. Происходит считывание значения переменной menu с помощью функции scanf.
  20. Происходит переключение в зависимости от значения переменной menu.

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

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