Ошибка в программе. Надо найти среди прямоугольников есть ли квадраты? - C (СИ)
Формулировка задачи:
здравствуйте!
подскажите пожалуйста в чем ошибка..."надо найти среди прямоугольников есть ли квадраты? "
#include <iostream.h> #include <string.h> #include <conio.h> #include <stdio.h> #include <math.h> int pr(float a,float b,float *p,float *s,float *r) {if(a<0 && b<0) return 0; else {*p=(a+b)*2; *s=a*b; *r=sqrt(pow(a,2)+pow(b,2))/2; return 1; } } void main() { float a[5][2]; float s[5],p[5],r[5]; int i; for(i=0;i<5;i++) {printf ("\n vvedite dliny %d pr : ",i+1); scanf("%f",&a[i][0]); printf("\n vvedite shiriny %d pr : ",i+1); scanf("%f",&a[i][1]); if(pr(a[i][0],a[i][1],&p[i],&s[i],&r[i])==1) { printf("\n perimetr=%f",p[i]); printf("\n ploshad=%f",s[i]); printf("\n radius=%f",r[i]); for(i=0;i<5;i++) if(a==b) // компилятор пишет что не понимает символ b,хотя я и int пробовал вводить,всё равно ругается.. { printf("\n kvadrat !");} else printf("\n net tarogo!");}[/COLOR] } getch (); }
Решение задачи: «Ошибка в программе. Надо найти среди прямоугольников есть ли квадраты?»
textual
Листинг программы
#include <iostream.h> #include <string.h> #include <conio.h> #include <stdio.h> #include <math.h> int pr(float a,float b,float *p,float *s,float *r) {if(a<0 && b<0) return 0; else {*p=(a+b)*2; *s=a*b; *r=sqrt(pow(a,2)+pow(b,2))/2; return 1; } } void main() { float a[5][2]; float s[5],p[5],r[5]; int i; for(i=0;i<5;i++) {printf ("\n vvedite dliny %d pr : ",i+1); scanf("%f",&a[i][0]); printf("\n vvedite shiriny %d pr : ",i+1); scanf("%f",&a[i][1]); if(pr(a[i][0],a[i][1],&p[i],&s[i],&r[i])==1) { printf("\n perimetr=%f",p[i]); printf("\n ploshad=%f",s[i]); printf("\n radius=%f",r[i]); if(a[i][0]==a[i][1]) // компилятор пишет что не понимает символ b,хотя я и int пробовал вводить,всё равно ругается.. { printf("\n kvadrat !");} else printf("\n net tarogo!");} } getch (); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
iostream.h
для работы с потоками ввода-вывода;string.h
для работы со строками;conio.h
для работы с клавиатурой и мышью;stdio.h
для работы с стандартными вводом и выводом;math.h
для работы с математическими функциями.
- Функция
pr
принимает на вход три аргумента типаfloat
:a
,b
и указатели на переменныеp
,s
,r
. Внутри функции происходит проверка на отрицательностьa
иb
. Если оба аргумента отрицательны, функция возвращает0
. В противном случае, в переменныеp
,s
иr
присваиваются соответствующие значения и функция возвращает1
. - Функция
main
является точкой входа в программу. Она объявляет массивa
размером 5х2, массивыp
,s
,r
иi
.- С помощью цикла
for
происходит заполнение массиваa
значениями, введенными пользователем. - После заполнения массива
a
, вызывается функцияpr
для каждого элемента массива. - Если функция
pr
вернула1
, выводятся значенияp
,s
иr
. - Если
a[i][0]
равноa[i][1]
, выводится сообщениеkvadrat
. В противном случае выводится сообщениеnet tarogo
.
- С помощью цикла
- Компилятор выдает ошибку, потому что переменная
b
не определена в момент обращения к ней в строкеif(a[i][0]==a[i][1])
. В данном случае, необходимо объявить переменнуюb
какfloat
перед использованием.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д