Koshak Опубликовано 25 марта, 2011 Жалоба Поделиться Опубликовано 25 марта, 2011 первая.Дана последовательность из целых натуральных чисел.За последним числом вводиться нуль.Найти наименьшее их всех положительных чисел последовательности.# include using namespace std;int main(){ setlocale (LC_ALL,"Russian"); cout << "Введите через пробел последовательность из целых чисел,где последнее число 0 \n"; int t; int min; cin >> t; if (t>0) min=t; else min=0; do {cin >> t; if ((t0)) min=t; } while (t!=0); if (min==0) cout << "нет положительных чисел"< else cout << "наименьшее положительное число: " << min < system("pause"); return 0;}и вторая.Даны координаты трех точек на плоскости.Если они могут быть вершинами тупоугольного треугольника,вычислите его площадь.Выведите длины сторон в порядке убывания.# include # include # include using namespace std;int main(){ setlocale(LC_ALL,"Russian"); float x1,y1,x2,y2,x3,y3; int a,b,c,p,s; float z,x,v,j,n,m,k,l,o,t,y,p;// t,y,p-косинусы углов А,B,C cout << "введите x1,y1,x2,y2,x3,y3 через пробел" << endl; cin >> x1 >> y1; cin >> x2 >> y2; cin >> x3 >> y3; z=x1-x2; x=y1-y2; v=x1-x3; j=y1-y3; n=x2-x3; m=y2-y3; a=sqrt(pow(z,2) + pow(x,2)); b=sqrt(pow(v,2) + pow(j,2)); c=sqrt(pow(n,2) + pow(m,2)); k=pow(a,2); l=pow(b,2); o=pow(c,2); if ((a < (b+c)) && (b<(a+c)) && (c<(b+a))) t=((l+o-k)/(2*b*c));//t-косинус А y=((k+o-l)/(2*a*c));//y-косинус B p=((k+l-o)/(2*a*);//p-косинус P if ((t<0)&&(l<0)&&(o<0)) if ((k>(l+o))&&(l>(k+o))&&(o>(k+l))) p=((a+b+c)/2); s=sqrt(p*(p-a)*(p-*(p-c); if ((a>&&(a>c)&&(b>c)) cout <<"стороны равны a = " << a <<" b = " << b << " с = " << c << " s =" << s << " p = " << p << endl ; else if ((a>&& (a cout <<"стороны равны c = " << c <<" a = " << a << " b = " << b <<" s =" << s << " p = " << p << endl ; else if ((a>c) && (a< cout <<"стороны равны b = " << b <<" a = " << a << " с = " << c <<" s =" << s << " p = " << p << endl ; else cout <<"стороны равны c = " << c <<" b = " << b << " a = " << a <<" s =" << s << " p = " << p << endl ; else cout << "треугольник не тупоугольный!" << endl; else cout << "точки не являются вершинами треугольника!" << endl; else cout << "треугольник не существует вообще!" << endl; system("pause"); return 0;} Ссылка на комментарий
TolkienDRR Опубликовано 25 марта, 2011 Жалоба Поделиться Опубликовано 25 марта, 2011 Koshak, какие ошибки вываливаются когда компилируешь? на какой строке? ЗЫ что такое то, как будто из задачника перенабрал и задания оставил. Uоловой своей тоже хоть задуматься да надо Ссылка на комментарий
Koshak Опубликовано 25 марта, 2011 Автор Жалоба Поделиться Опубликовано 25 марта, 2011 компилятор не выдает ошибок.эти программы я писал сам, но они работают правильно не всегда(т.е. код не верный) поэтому и прошу найти ошибку в коде. Ссылка на комментарий
TolkienDRR Опубликовано 25 марта, 2011 Жалоба Поделиться Опубликовано 25 марта, 2011 дык что не верно то выдает? на каких тестах? Ссылка на комментарий
Koshak Опубликовано 29 марта, 2011 Автор Жалоба Поделиться Опубликовано 29 марта, 2011 ну например в первой задаче.если я ввожу -3 -2 -1 0,то программа работает правильно.и выдает, что "положительных чисел нет".если ввести 3 2 1 0,то тоже работает правильно.но если ввести -5 4 -3 -2 2 0,то выдаст, что наименьшее 0.хотя должен выдать 2.во второй задаче вообще ниодин тест не работает. Ссылка на комментарий
Dik Опубликовано 29 марта, 2011 Жалоба Поделиться Опубликовано 29 марта, 2011 KoshakНу логично ведь, первое число последовательности у тебя < 0, в min записываешь 0 в итоге, и теперь любое положительное число его не перезапишет, надо наверное или maxint записывать, или просто ждать положительные числа сразу не выбирая именно первое из них для инициализации переменных. Ссылка на комментарий
toll Опубликовано 29 марта, 2011 Жалоба Поделиться Опубликовано 29 марта, 2011 min=0 --- > min=-1if (min==-1) Ссылка на комментарий
TheOneZZZZ Опубликовано 30 марта, 2011 Жалоба Поделиться Опубликовано 30 марта, 2011 cin >> t; // Ввели tif (t>0) min=t; // инициализировали minelse min=0;do { cin >> t; if (t>0) && ( ((t min=t;} while (t!=0);if (min==0) cout << "нет положительных чисел"<else cout << "наименьшее положительное число: " << min <system("pause");return 0; Ссылка на комментарий
Koshak Опубликовано 31 марта, 2011 Автор Жалоба Поделиться Опубликовано 31 марта, 2011 cin >> t; // Ввели tif (t>0) min=t; // инициализировали minelse min=0;do { cin >> t; if (t>0) && ( ((t min=t;} while (t!=0);if (min==0) cout << "нет положительных чисел"<else cout << "наименьшее положительное число: " << min <system("pause");return 0;спасибо большое.программа работает правильно.....почти!она работает для всех тестов,кроме тех,которые начинаются с отрицательных чисел.например,я ввожу -10 8 -4 2 0 и программа выводит,что "нет положительных чисел"Добавлено спустя 3 минуты 48 секунд:cin >> t; // Ввели tif (t>0) min=t; // инициализировали minelse min=0;do { cin >> t; if (t>0) && ( ((t min=t;} while (t!=0);if (min==0) cout << "нет положительных чисел"<else cout << "наименьшее положительное число: " << min <system("pause");return 0;спасибо большое.программа работает правильно.....почти!она работает для всех тестов,кроме тех,которые начинаются с отрицательных чисел.например,я ввожу -10 8 -4 2 0 и программа выводит,что "нет положительных чисел"все,разобрался.в строчке if (t>0) && ( ((tДобавлено спустя 7 минут 25 секунд:помогите теперь со 2 задачей.Даны координаты трех точек на плоскости.Если они могут быть вершинами тупоугольного треугольника,вычислите его площадь.Выведите длины сторон в порядке убывания.я значительно упростил код# include # include # include using namespace std;int main(){ setlocale(LC_ALL,"Russian"); float x1,y1,x2,y2,x3,y3; float a,b,c,k,l,o,p,s; cout << "введите черз пробел x1,y1,x2,y2,x3,y3 " << endl; cin >> x1 >> y1; cin >> x2 >> y2; cin >> x3 >> y3; a=sqrt(pow((x1-x2),2) + pow((y1-y2),2)); b=sqrt(pow((x1-x3),2) + pow((y1-y3),2)); c=sqrt(pow((x2-x3),2) + pow((y2-y3),2)); if(a< { int t=a; a=b; b=t; } if(a { int t=a; a=c; c=t; } if(b { int t=b; b=c; c=t; } k=pow(a,2); l=pow(b,2); o=pow(c,2); if((a>=b+c)||(b>=a+c)||(c>=a+) cout << "Это не треугольник!"; if ((k>l+o)||(l>k+o)||(o>l+k)) { p=((a+b+c)/2); s=sqrt(p*(p-a)*(p-*(p-c)); cout <<"стороны равны a = " << a <<" b = " << b << " с = " << c << " s =" << s << " p = " << p << endl ; } else cout <<"треугольник не тупоугольный!" < system("pause"); return 0;}беда в том, что программа работает для любого треугольника.не важно,тупоугольный он или нет. Ссылка на комментарий
Kep0cuH Опубликовано 31 марта, 2011 Жалоба Поделиться Опубликовано 31 марта, 2011 2:# include # include using namespace std;int main(){ setlocale(LC_ALL,"Russian"); float x1,y1,x2,y2,x3,y3; float a,b,c,k,l,o,p,s; cout << "введите через пробел x1,y1,x2,y2,x3,y3 " << endl; cin >> x1 >> y1; cin >> x2 >> y2; cin >> x3 >> y3; a=sqrt(pow((x1-x2),2) + pow((y1-y2),2)); b=sqrt(pow((x1-x3),2) + pow((y1-y3),2)); c=sqrt(pow((x2-x3),2) + pow((y2-y3),2)); if(a< { float t=a; a=b; b=t; } if(a { float t=a; a=c; c=t; } if(b { float t=b; b=c; c=t; } k=pow(a,2); l=pow(b,2); o=pow(c,2); if(a>=b+c) {cout << "Это не треугольник!"; system("pause"); return 0;} if (k>l+o) { p=((a+b+c)/2); s=sqrt(p*(p-a)*(p-*(p-c)); cout <<"стороны равны a = " << a <<" b = " << b << " с = " << c << " s =" << s << " p = " << p << endl ; } else cout <<"треугольник не тупоугольный!" < system("pause"); return 0;} # include 1:#include #include using namespace std;int main(){ setlocale(LC_ALL,"rus"); int m=INT_MAX; while(true) { int a; cin>>a; if(!a) break; if(a0) m=a; } if(m!=INT_MAX) cout<<"Наименьшее положительное число = "< else cout<<"Положительных чисел нет\n" system("pause"); return 0;}#include Проверь только на всякий случай. Ссылка на комментарий
TheOneZZZZ Опубликовано 31 марта, 2011 Жалоба Поделиться Опубликовано 31 марта, 2011 cin >> t; // Ввели tif (t>0) min=t; // инициализировали minelse min=0;do { cin >> t; if (t>0) && ( ((t min=t;} while (t!=0);if (min==0) cout << "нет положительных чисел"<else cout << "наименьшее положительное число: " << min <system("pause");return 0;спасибо большое.программа работает правильно.....почти!она работает для всех тестов,кроме тех,которые начинаются с отрицательных чисел.например,я ввожу -10 8 -4 2 0 и программа выводит,что "нет положительных чисел"Добавлено спустя 3 минуты 48 секунд:cin >> t; // Ввели tif (t>0) min=t; // инициализировали minelse min=0;do { cin >> t; if (t>0) && ( ((t min=t;} while (t!=0);if (min==0) cout << "нет положительных чисел"<else cout << "наименьшее положительное число: " << min <system("pause");return 0;спасибо большое.программа работает правильно.....почти!она работает для всех тестов,кроме тех,которые начинаются с отрицательных чисел.например,я ввожу -10 8 -4 2 0 и программа выводит,что "нет положительных чисел"все,разобрался.в строчке if (t>0) && ( ((tблин точно там присвоение получается ты знаешь я ВСГТУ в 2004 закончил, прости запамятовал ))) Ссылка на комментарий
Koshak Опубликовано 31 марта, 2011 Автор Жалоба Поделиться Опубликовано 31 марта, 2011 2:# include # include using namespace std;int main(){ setlocale(LC_ALL,"Russian"); float x1,y1,x2,y2,x3,y3; float a,b,c,k,l,o,p,s; cout << "введите через пробел x1,y1,x2,y2,x3,y3 " << endl; cin >> x1 >> y1; cin >> x2 >> y2; cin >> x3 >> y3; a=sqrt(pow((x1-x2),2) + pow((y1-y2),2)); b=sqrt(pow((x1-x3),2) + pow((y1-y3),2)); c=sqrt(pow((x2-x3),2) + pow((y2-y3),2)); if(a< { float t=a; a=b; b=t; } if(a { float t=a; a=c; c=t; } if(b { float t=b; b=c; c=t; } k=pow(a,2); l=pow(b,2); o=pow(c,2); if(a>=b+c) {cout << "Это не треугольник!"; system("pause"); return 0;} if (k>l+o) { p=((a+b+c)/2); s=sqrt(p*(p-a)*(p-*(p-c)); cout <<"стороны равны a = " << a <<" b = " << b << " с = " << c << " s =" << s << " p = " << p << endl ; } else cout <<"треугольник не тупоугольный!" < system("pause"); return 0;} # include работает,но не правильно.она работает даже если я ввожу числа 3 0 0 4 0 5 хотя это координаты прямоугольного треугольника.программа должна вывести:"Треугольник не тупоугольный" Ссылка на комментарий
Kep0cuH Опубликовано 31 марта, 2011 Жалоба Поделиться Опубликовано 31 марта, 2011 Ты же точки задаешь, а не длины сторон. Ты вводишь:Это тупоугольный треугольник, как видишь. Ссылка на комментарий
Koshak Опубликовано 31 марта, 2011 Автор Жалоба Поделиться Опубликовано 31 марта, 2011 ну,значит она работает.но есть еще,так сказать,мини ошибкакогда вводишь координаты НЕ треугольника.т.е. например 0 0 0 0 0 0 программа выдает "Это не треугольник!треугольник не тупоугольный!"хотя должна выдавать просто "Это не треугольник"Добавлено спустя 5 минут 17 секунд:или если ввожу 4 0 0 2 0 3 то программа вообще выдает "Это не треугольник!стороны равны a=5 b=4 c=1 s=0 p=5" Ссылка на комментарий
Kep0cuH Опубликовано 31 марта, 2011 Жалоба Поделиться Опубликовано 31 марта, 2011 Ты вообще что проверяешь? Скопируй себе мой код без изменений. У меня все правильно работает. Ссылка на комментарий
Koshak Опубликовано 1 апреля, 2011 Автор Жалоба Поделиться Опубликовано 1 апреля, 2011 спасибо большое.можно закрыть тему. Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти