В C ++ оператор выбора if определяется следующим образом
selection-statement:
if ( condition ) statement
if ( condition ) statement else statement
Как видно, условие должно быть заключено в скобки.
Также в этом подпункте есть опечатка. выражение
if (a=!0)and(a<=1000000)
****
То есть это выражение
a=!0
эквивалентно
a = !0
и обозначает присвоение выражения !0
переменной a
это эквивалентно
a = 1
Так что вы должны написать либо
if ( ( a != 0 ) and ( a <= 1000000 ) )
или
if ( a != 0 and a <= 1000000 )
Также обратите внимание на то, что переменная s
должна быть объявленным имеющим тип long long int
.
long long int s;
int a;
В противном случае выражение в правой части присваивания
s = a*(a+1)/2;
может привести к переполнению.
Поэтому вы должны написать, например,
long long int s;
int a;
//…
s = ( long long int )a * ( a + 1 ) / 2;
С учетом всего сказанного ваша программа может выглядеть следующим образом:
#include <iostream>
using namespace std;
int main()
{
long long int s;
int a;
cin >> a;
if ( a != 0 and a <= 1'000'000 )
{
s = ( long long int )a * ( a + 1 ) / 2;
cout << s << '\n';
}
return 0;
}
Если, например, ввести
1000000
, то вывод программы будет
500000500000