Подскажите, в чем дело? Задание было таким: подготовить программу, в которой выполнить следующие объявления переменных:
1. Переменные c и a символьного типа. Присвоить переменной «с» в качестве начального
значения символ «?», а переменной «a» число 135.
5
2. Переменные i, j и k целого типа. Присвоить переменной «k» начальное значение 100, а
переменным «i» и «j», положительное и отрицательное значения, выходящие за диапазон
значений данного типа.
3. Переменные s1, s2, s3 описать как короткие целые со знаком. Присвоить этим
переменным соответственно 0, минимально целое и максимальное целое.
4. Переменные u и v описать как целые без знака и присвоить им соответственно
одинаковые по модулю положительное и отрицательное значения.
5. Переменные f и pi описать как вещественные одинарной точности. Присвоить
переменной pi в качестве начального значения число π с точностью 7 значащих цифр, а
переменной f значение, выходящее за диапазон допустимых значений.
6. Переменную d описать как вещественную двойной точности с начальным значением 10-
7. Напечатать значения всех переменных.
При запуске программы происходит данная ошибка.

char a; // a у вас объявлена как символ
a = '135'; // попытка записать три символа вместо одного приводит к ошибке
Не совсем понятно, как у вас это вообще компилировалось?! Возможно, у вас запускается предыдущая валидная версия алгоритма...
Тип int имеет предельно допустимое положительное целое равное 2147483647. Если присвоить переменной int положительное значение, которое превышает установленный предел, случиться переполнение значения и дальнейшее поведение алгоритма станет неопределённым. То же самое можно сказать и про отрицательный диапазон допустимых значений, где минимально допустимым значением является -2147483648. У вас в i и j такое переполнение предопределено!!
Вы пишите код на C++, а используете синтаксис языка С
Рекомендую переписать...
#include <iostream>
#include <climits>
#include <iomanip>
using namespace std;
int main() {
char c = '?';
cout << "c: " << c << '\n';
const char* a = "135";
cout << "a: " << a << '\n';
int k = 100;
cout << "k: " << k << '\n';
int i = INT_MAX + k;
cout << "i: " << i << '\n';
int j = INT_MIN - k;
cout << "j: " << j << '\n';
short s1 = 0;
cout << "s1: " << s1 << '\n';
short s2 = SHRT_MIN;
cout << "s2: " << s2 << '\n';
short s3 = SHRT_MAX;
cout << "s3: " << s3 << '\n';
unsigned u = 128;
cout << "u: " << u << '\n';
unsigned v = -128;
cout << "v: " << v << '\n';
float pi = 3.1415927;
cout << "pi: " << pi << '\n';
float f = FLT_MAX * 2;
cout << "f: " << f << '\n';
double d = 1e-5;
cout << "d: " << d << '\n';
system("pause > nul");
}
Навскидку вижу попытку вывода символа как строк.
Андрей, посмотрите в текст задания внимательно! Разве не очевидно, что символьной переменной «а» следует присвоить числовое значение 135?
135 < 256
Полагаю, лучше представить так: unsigned char a = 135;
Если у Вас слишком строгий компилятор, то его можно удовлетворить, например, так:
unsigned char a = (unsigned char)135;
✓ RE: переменной «a» число 135.
«Число» означает числовое значение, тип char это позволяет (а может быть лучше объявить переменную «a» типа unsigned char).
По смыслу задания: char a = 135;
А если компилятор будет недоволен, выполнить приведение типа.