Распознать по длинам сторон среди всех треугольников прямоугольные - C (СИ)
Формулировка задачи:
Здравствуйте! Очень прошу помочь с проверкой программ. Язык Си.Надеюсь, что какой-нибудь добрый человек мне поможет=)
Программа 1.
Написать программу, распознающую по длинам сторон среди всех треугольников прямоугольные. Если их нет, то вычислить величину угла с.
Программа 2.
Среди всех n-значных чисел указать те, сумма цифр которых равна данному числу k.
Сразу скажу, что в программировании я полный 0 и кое-как написал программы. Очень надеюсь на помощь. Если что не так оформил, простите
#include<stdio.h>
#include<math.h>
void main ()
{
double storona1,storona2,storona3,ugl;
printf("\n введите значения: 1й стороны,2й стороны, 3й стороны ");
scanf("%lf%lf%lf",&storona1,&storona2,&storona3);
if(storona1==sqrt(storona2*storona2+storona3*storona3))||
(storona2==sqrt(storona1*storona1+storona3*storona3))||
(storona3==sqrt(storona1*storona1+storona2*storona2)))
}
printf("\n Данный треугольник является прямоугольным");
}
else
{
ugl=cos((storona1*storona1+storona2*storona2-storona3*storona3)/2*storona1*storona2);
printf("треугольник не прямоугольный, угол между 1й и 2й стороной:%lf",ugl);
}#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
void main () {
int n,k,i,j,summ;
drscr();
printf("\n Введите значение чисел n");
scanf("%d,&n);
printf("k:");
Scanf("%d,&k);
m=malloc(sizeof(int)*5);
for i=pow(10,n-1)-1; i<=pow(10,n)-1;i++);
t=i;
For(j=0;j<=n;j++){
n[j]=t % pow(10,n-1-j);
t=t-m[j]+pow(10,n-1-j);
}
For (j=0;j,n;j++) summ=summ+m[j];
if(summ==k) printf("%d,j);
}
free(m);Решение задачи: «Распознать по длинам сторон среди всех треугольников прямоугольные»
textual
Листинг программы
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
int main ()
{
system("chcp 1251 > nul");
double storona1,storona2,storona3,ugl,s1,s2,s3;
printf("\n введите значения: 1й стороны,2й стороны, 3й стороны ");
scanf("%lf%lf%lf",&storona1,&storona2,&storona3);
s1==sqrt(storona2*storona2+storona3*storona3);
s2==sqrt(storona1*storona1+storona3*storona3);
s3==sqrt(storona1*storona1+storona2*storona2);
if (storona1==s1||storona2==s2||storona3==s3)
printf("\n Данный треугольник является прямоугольным");
else
ugl=cos((storona1*storona1+storona2*storona2-storona3*storona3)/2*storona1*storona2);
printf("треугольник не прямоугольный, угол между 1й и 2й стороной:%lf",ugl);
system("pause");
}
Объяснение кода листинга программы
В этом коде:
- Подключаются необходимые библиотеки.
- В функции main() после команды system(
chcp 1251 > nul) устанавливается кодировка консоли в CP-1251 (Windows Cyrillic). - Объявляются переменные: стороны треугольника (storona1, storona2, storona3), длины сторон треугольника (s1, s2, s3), а также переменная для хранения угла между сторонами треугольника (ugl).
- Пользователю предлагается ввести значения сторон треугольника.
- С помощью функции scanf() вводятся значения сторон треугольника.
- Вычисляются длины сторон треугольника по формулам s1 = sqrt(storona2storona2+storona3storona3), s2 = sqrt(storona1storona1+storona3storona3), s3 = sqrt(storona1storona1+storona2storona2).
- С помощью условного оператора if() проверяется, является ли одна из сторон равной соответствующей длине стороны. Если это так, то выводится сообщение о том, что треугольник является прямоугольным.
- Если условие if() не выполняется, то вычисляется угол между первой и второй сторонами треугольника по формуле ugl = cos((storona1storona1+storona2storona2-storona3storona3)/2storona1*storona2).
- Выводится сообщение о том, что треугольник не является прямоугольным и вычисленный угол между первой и второй сторонами треугольника.
- В конце работы программы вызывается функция system(
pause), которая приостанавливает выполнение программы до тех пор, пока пользователь не нажмет клавишу.