Выдает ошибку - 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");
- }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы:
, , , , . - Определяются константы X, Y, Z.
- Определяются функции drow и calc.
- В функции main происходит вывод меню.
- В случае выбора пункта меню 1, вызывается функция drow с аргументом 'c'.
- В случае выбора пункта меню 2, вызывается функция calc с аргументами 5 и 4.
- В функции drow происходит рисование треугольника.
- В функции calc происходит расчет и вывод периметра треугольника.
- Задаются значения переменных: int menu;, char a;, int i, j, b;, float h, float g;, int P;.
- Значения переменных X, Y, Z равны 14, 2 и 16 соответственно.
- Значение переменной menu равно 1.
- Значение переменной a не определено.
- Значения переменных i, j, b не определены.
- Значения переменных h, g не определены.
- Значение переменной P не определено.
- Происходит установка консоли в кодировку 1251.
- Происходит вывод строки
Эта программа рисует или считает периметр треугольника
. - Происходит вывод строки
1-Нарисовать 2-Посчитать периметр 3-Выход
. - Происходит считывание значения переменной menu с помощью функции scanf.
- Происходит переключение в зависимости от значения переменной menu.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д