Найти синтаксические ошибки - C (СИ)
Формулировка задачи:
Я с СИ раньше не работал, помогите найти синтаксические ошибки в коде.
void main()
{
int a, b; // отрезок [a,b]
int c, d; // отрезок [c,d]
int L; // видимая длина отрезков
// Ввести координаты первого отрезка [a, b]
printf( "Input first segment:" );
printf( "\nbegin = " );
scanf( "%d", &a );
printf( "end = " );
scanf( "%d", &b );
// Ввести координаты второго отрезка [c, d]
printf( "\nInput second segment:" );
printf( "\nbegin = " );
scanf( "%d", &c );
printf( "end = " );
scanf( "%d", &d );
// Рассчитать видимую длину отрезков L
// Отрезки пересекаются
if ((b<c) or (d<a))
{
L=(b-a)+(d-c);
}
// Отрезки частично пересекаются или касаются друг друга
if ((c>a) and (c<b) and (d<b))
{
L=d-a;
}
if ((a>c) and (a<d) and (b>d))
{
L=b-c;
}
// Один отрезок полностью принадлежит другому
if ((c>=a) and (d<=b))
{
L=b-a;
}
if ((a>=c) and (b<=d))
{
L=c-d;
}
// Напечатать L
printf("\nVisible length of the segment = %d", L );
}Решение задачи: «Найти синтаксические ошибки»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b; // отрезок [a,b]
int c, d; // отрезок [c,d]
int L; // видимая длина отрезков
// Ввести координаты первого отрезка [a, b]
printf( "Input first segment:" );
printf( "\nbegin = " );
scanf( "%d", &a );
printf( "end = " );
scanf( "%d", &b );
// Ввести координаты второго отрезка [c, d]
printf( "\nInput second segment:" );
printf( "\nbegin = " );
scanf( "%d", &c );
printf( "end = " );
scanf( "%d", &d );
// Рассчитать видимую длину отрезков L
// Отрезки пересекаются
if ((b<c) || (d<a))
{
L=(b-a)+(d-c);
}
// Отрезки частично пересекаются или касаются друг друга
if ((c>a) && (c<b) && (d<b))
{
L=d-a;
}
if ((a>c) && (a<d) && (b>d))
{
L=b-c;
}
// Один отрезок полностью принадлежит другому
if ((c>=a) && (d<=b))
{
L=b-a;
}
if ((a>=c) && (b<=d))
{
L=c-d;
}
// Напечатать L
printf("\nVisible length of the segment = %d", L );
return 0;
}
Объяснение кода листинга программы
- Ввод данных:
Для каждого отрезка вводится его начало и конец с помощью функции
scanf(). - Проверка на пересечение отрезков:
С помощью условного оператора
ifпроверяется пересечение отрезков. - Вычисление видимой длины отрезка L: В зависимости от условий, вычисляется видимая длина отрезка L.
- Вывод результата:
С помощью функции
printf()выводится видимая длина отрезка L.