Программист написал программу, вычисляющую сумму элементов массива A, десятичная запись которых заканчивается на 6. Какое условие он записал вместо многоточия? s := 0; for i := 1 to n do begin if ... then s:= s + A[i] end;
1) в первом случае стоит условие "пока переменная N (которая изначально равна 1) меньше или равна 5" мы умножаем данную переменную на 2, до тех пор пока она не станет больше или равна 5 , соответственно цикл завершается, когда N стала больше 5.
1 * 2 = 2, N присваивается ответ (т.е. число 2), далее 2 * 2 = 4, далее по идее программа будет делать ещё одно действие, потому что условие не достигнуто и N не равно 5, но в итоге ответ будет равен 4, потому что 4 * 2 уже получится 8, что не соответствует условию.
2) во втором такая же схема, поменялось только действие с произведения на разность
если что-то не понятно, спрашивай в комментариях :)
1) N = 4
2) N = 1
Объяснение:
1) в первом случае стоит условие "пока переменная N (которая изначально равна 1) меньше или равна 5" мы умножаем данную переменную на 2, до тех пор пока она не станет больше или равна 5 , соответственно цикл завершается, когда N стала больше 5.
1 * 2 = 2, N присваивается ответ (т.е. число 2), далее 2 * 2 = 4, далее по идее программа будет делать ещё одно действие, потому что условие не достигнуто и N не равно 5, но в итоге ответ будет равен 4, потому что 4 * 2 уже получится 8, что не соответствует условию.
2) во втором такая же схема, поменялось только действие с произведения на разность
если что-то не понятно, спрашивай в комментариях :)
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
int main() {
double a,b,c,d,x1,x2;
cout<<"a, b, c:"<<endl;
cin>>a>>b>>c;
d=b*b-4*a*c;
if(d>0) {
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
cout<<"double root:"<<endl;
cout<<x1<<" "<<x2;
}
else
if(d<=0) cout<<"no roots"<<endl;
else if(d==0) {
x1=-b/2*a;
cout<<"one root:"<<endl<<x1;
}
getchar();
return 0;
}
Исправил тебе код.
Очень, ОЧЕНЬ много ошибок.
После инклюдов ; не ставится.
Зачем тебе программа для решения квадратных уравнений если она не может работать с дробями. Надо использовать для переменных тип double.
Функция квадратного корня пишется sqrt, а не sgrt.
В C и C++ переменные d и D - разные. Регистр имеет очень большое значение.
cin>>double root>>; - что ты вообще хочешь этим сделать. Тебе нужно вывести корни, а ты что-то непонятное делаешь.
cin>>one root>>; - аналогично
cin>>notroot>>; - аналогично
cout<<"not root:"<<endl; - грамматическая ошибка
Присвоение в C и C++ это =, а не :=.
По поводу if-else - сам почитай.
{}{}{}{}{} - для каждой { должна быть }
Самая первая проверка d должна выглядеть d>0, а не d>=0; будет ответ неверным.
Проверка на равенство в C/C++ выглядит (a==b)
И много-много другого