Выдает ошибку - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д